@ethlete/core 5.0.0-next.45 → 5.0.0-next.47
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/CHANGELOG.md +15 -0
- package/fesm2022/ethlete-core.mjs +42 -8
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/generators/generators.json +5 -0
- package/generators/migrate-surface-interaction-swatch/interaction-swatch.js +43 -0
- package/generators/migrate-surface-interaction-swatch/migration.js +29 -0
- package/generators/migrate-surface-interaction-swatch/schema.json +26 -0
- package/generators/tailwind-4-surface-theme/generator.js +119 -29
- package/package.json +1 -1
- package/types/ethlete-core.d.ts +67 -10
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
"schema": "./migrate-provider-shape/schema.json",
|
|
11
11
|
"description": "Rewrite destructured provider tuples into the tree-shakeable definition shape"
|
|
12
12
|
},
|
|
13
|
+
"migrate-surface-interaction-swatch": {
|
|
14
|
+
"factory": "./migrate-surface-interaction-swatch/migration",
|
|
15
|
+
"schema": "./migrate-surface-interaction-swatch/schema.json",
|
|
16
|
+
"description": "Rewrite surface theme interactionColor maps into the { color, onColor, inkColor } swatch shape"
|
|
17
|
+
},
|
|
13
18
|
"tailwind-4-color-theme": {
|
|
14
19
|
"factory": "./tailwind-4-color-theme/generator",
|
|
15
20
|
"schema": "./tailwind-4-color-theme/schema.json",
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Project, SyntaxKind } from 'ts-morph';
|
|
2
|
+
const INTERACTION_KEYS = ['default', 'hover', 'focus', 'active', 'disabled'];
|
|
3
|
+
const createProject = () => new Project({
|
|
4
|
+
useInMemoryFileSystem: true,
|
|
5
|
+
compilerOptions: {
|
|
6
|
+
target: 99,
|
|
7
|
+
module: 99,
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
const isFlatInteractionColor = (initializer) => initializer
|
|
11
|
+
.getProperties()
|
|
12
|
+
.some((property) => property.isKind(SyntaxKind.PropertyAssignment) && INTERACTION_KEYS.includes(property.getName()));
|
|
13
|
+
const findFlatInteractionColor = (sourceFile) => {
|
|
14
|
+
for (const property of sourceFile.getDescendantsOfKind(SyntaxKind.PropertyAssignment)) {
|
|
15
|
+
if (property.getName() !== 'interactionColor')
|
|
16
|
+
continue;
|
|
17
|
+
const initializer = property.getInitializer();
|
|
18
|
+
if (initializer?.isKind(SyntaxKind.ObjectLiteralExpression) && isFlatInteractionColor(initializer)) {
|
|
19
|
+
return initializer;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Rewrites `interactionColor: { default, hover, … }` into `interactionColor: { color: { default, … } }`,
|
|
26
|
+
* the swatch shape that also carries the optional `onColor` and `inkColor` maps.
|
|
27
|
+
*/
|
|
28
|
+
export const migrateInteractionSwatchInFile = (filePath, content) => {
|
|
29
|
+
if (!content.includes('interactionColor')) {
|
|
30
|
+
return { changed: false, content };
|
|
31
|
+
}
|
|
32
|
+
const sourceFile = createProject().createSourceFile(filePath, content);
|
|
33
|
+
let changed = false;
|
|
34
|
+
// Re-queried after every rewrite: manipulating the AST forgets the nodes a single up-front
|
|
35
|
+
// collection would have handed us.
|
|
36
|
+
for (let initializer = findFlatInteractionColor(sourceFile); initializer;) {
|
|
37
|
+
initializer.replaceWithText(`{ color: ${initializer.getText()} }`);
|
|
38
|
+
changed = true;
|
|
39
|
+
initializer = findFlatInteractionColor(sourceFile);
|
|
40
|
+
}
|
|
41
|
+
return { changed, content: changed ? sourceFile.getFullText() : content };
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=interaction-swatch.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { formatFiles } from '@nx/devkit';
|
|
2
|
+
import { createMigrationScope } from '../migrate-provider-shape/migration-scope.js';
|
|
3
|
+
import { migrateInteractionSwatchInFile } from './interaction-swatch.js';
|
|
4
|
+
export default async function migrateSurfaceInteractionSwatch(tree, schema) {
|
|
5
|
+
console.log('\n🔄 Migrating surface interactionColor to the swatch shape...');
|
|
6
|
+
const scope = createMigrationScope(tree, schema);
|
|
7
|
+
console.log(` Scope: ${scope.describe()}`);
|
|
8
|
+
let filesChanged = 0;
|
|
9
|
+
scope.visit(tree, (filePath) => {
|
|
10
|
+
if (!filePath.endsWith('.ts') || filePath.endsWith('.d.ts'))
|
|
11
|
+
return;
|
|
12
|
+
const before = tree.read(filePath, 'utf-8');
|
|
13
|
+
if (!before)
|
|
14
|
+
return;
|
|
15
|
+
const result = migrateInteractionSwatchInFile(filePath, before);
|
|
16
|
+
if (!result.changed)
|
|
17
|
+
return;
|
|
18
|
+
tree.write(filePath, result.content);
|
|
19
|
+
filesChanged++;
|
|
20
|
+
console.log(` ✓ ${filePath}`);
|
|
21
|
+
});
|
|
22
|
+
console.log(filesChanged === 0
|
|
23
|
+
? ' Nothing to migrate.\n'
|
|
24
|
+
: `\n✅ Migrated ${filesChanged} file(s). Regenerate your surface CSS with \`nx g @ethlete/core:tailwind-4-surface-theme\`.\n`);
|
|
25
|
+
if (!schema.skipFormat) {
|
|
26
|
+
await formatFiles(tree);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=migration.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "migrate-surface-interaction-swatch",
|
|
4
|
+
"title": "Migrate surface interactionColor to the swatch shape",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"projects": {
|
|
8
|
+
"type": "array",
|
|
9
|
+
"items": { "type": "string" },
|
|
10
|
+
"description": "Nx projects to migrate. Defaults to every project in the workspace.",
|
|
11
|
+
"alias": "project"
|
|
12
|
+
},
|
|
13
|
+
"include": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": { "type": "string" },
|
|
16
|
+
"description": "Path prefixes to migrate, relative to the workspace root (e.g. 'apps/web'). Unioned with `projects`. Defaults to the whole workspace.",
|
|
17
|
+
"alias": "includePath"
|
|
18
|
+
},
|
|
19
|
+
"skipFormat": {
|
|
20
|
+
"type": "boolean",
|
|
21
|
+
"description": "Skip formatting files after migration",
|
|
22
|
+
"default": false
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"required": []
|
|
26
|
+
}
|
|
@@ -158,9 +158,52 @@ const COLOR_PROPS = ['background', 'color', 'colorMuted', 'colorSubtle', 'border
|
|
|
158
158
|
const isColorProp = (name) => COLOR_PROPS.some((p) => p === name);
|
|
159
159
|
const INTERACTION_KEYS = ['default', 'hover', 'focus', 'active', 'disabled'];
|
|
160
160
|
const isInteractionKey = (name) => INTERACTION_KEYS.some((key) => key === name);
|
|
161
|
+
const SWATCH_KEYS = ['color', 'onColor', 'inkColor'];
|
|
162
|
+
const isSwatchKey = (name) => SWATCH_KEYS.some((key) => key === name);
|
|
163
|
+
function parseInteractionColorMap(obj) {
|
|
164
|
+
const map = {};
|
|
165
|
+
for (const prop of obj.getProperties()) {
|
|
166
|
+
if (!prop.isKind(SyntaxKind.PropertyAssignment))
|
|
167
|
+
continue;
|
|
168
|
+
const name = prop.getName();
|
|
169
|
+
const initializer = prop.getInitializer();
|
|
170
|
+
if (initializer?.isKind(SyntaxKind.StringLiteral) && isInteractionKey(name)) {
|
|
171
|
+
map[name] = initializer.getLiteralValue();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return map;
|
|
175
|
+
}
|
|
176
|
+
function parseInteractionColor(obj, themeName) {
|
|
177
|
+
const swatch = {};
|
|
178
|
+
for (const prop of obj.getProperties()) {
|
|
179
|
+
if (!prop.isKind(SyntaxKind.PropertyAssignment))
|
|
180
|
+
continue;
|
|
181
|
+
const name = prop.getName();
|
|
182
|
+
const initializer = prop.getInitializer();
|
|
183
|
+
if (isInteractionKey(name)) {
|
|
184
|
+
throw new Error(`Surface theme "${themeName}" uses the old flat \`interactionColor\` shape. It now takes a swatch: ` +
|
|
185
|
+
`{ color: { default, hover, focus, active, disabled }, onColor?, inkColor? }. ` +
|
|
186
|
+
`Run \`nx g @ethlete/core:migrate-surface-interaction-swatch\` to convert your themes.`);
|
|
187
|
+
}
|
|
188
|
+
if (!initializer?.isKind(SyntaxKind.ObjectLiteralExpression) || !isSwatchKey(name))
|
|
189
|
+
continue;
|
|
190
|
+
const map = parseInteractionColorMap(initializer);
|
|
191
|
+
if (name === 'color') {
|
|
192
|
+
if (map.default && map.hover && map.focus && map.active && map.disabled) {
|
|
193
|
+
swatch.color = map;
|
|
194
|
+
}
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
if (map.default) {
|
|
198
|
+
swatch[name] = map;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return swatch.color ? swatch : undefined;
|
|
202
|
+
}
|
|
161
203
|
function parseSurfaceThemeObject(obj) {
|
|
162
204
|
const properties = obj.getProperties();
|
|
163
205
|
const theme = {};
|
|
206
|
+
let interactionColorObj = null;
|
|
164
207
|
for (const prop of properties) {
|
|
165
208
|
if (!prop.isKind(SyntaxKind.PropertyAssignment)) {
|
|
166
209
|
continue;
|
|
@@ -177,24 +220,7 @@ function parseSurfaceThemeObject(obj) {
|
|
|
177
220
|
continue;
|
|
178
221
|
}
|
|
179
222
|
if (propName === 'interactionColor' && initializer.isKind(SyntaxKind.ObjectLiteralExpression)) {
|
|
180
|
-
|
|
181
|
-
const interactionColor = {};
|
|
182
|
-
for (const iProp of interactionProps) {
|
|
183
|
-
if (!iProp.isKind(SyntaxKind.PropertyAssignment))
|
|
184
|
-
continue;
|
|
185
|
-
const iPropName = iProp.getName();
|
|
186
|
-
const iInit = iProp.getInitializer();
|
|
187
|
-
if (iInit?.isKind(SyntaxKind.StringLiteral) && isInteractionKey(iPropName)) {
|
|
188
|
-
interactionColor[iPropName] = iInit.getLiteralValue();
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
if (interactionColor.default &&
|
|
192
|
-
interactionColor.hover &&
|
|
193
|
-
interactionColor.focus &&
|
|
194
|
-
interactionColor.active &&
|
|
195
|
-
interactionColor.disabled) {
|
|
196
|
-
theme.interactionColor = interactionColor;
|
|
197
|
-
}
|
|
223
|
+
interactionColorObj = initializer;
|
|
198
224
|
continue;
|
|
199
225
|
}
|
|
200
226
|
if (propName === 'elevation') {
|
|
@@ -227,6 +253,9 @@ function parseSurfaceThemeObject(obj) {
|
|
|
227
253
|
!theme.border) {
|
|
228
254
|
throw new Error('SurfaceTheme must have name, type, elevation, background, color, colorMuted, colorSubtle, and border properties');
|
|
229
255
|
}
|
|
256
|
+
if (interactionColorObj) {
|
|
257
|
+
theme.interactionColor = parseInteractionColor(interactionColorObj, theme.name);
|
|
258
|
+
}
|
|
230
259
|
return theme;
|
|
231
260
|
}
|
|
232
261
|
// Makes the named theme the sole default of its surface type, overriding any isDefault
|
|
@@ -322,11 +351,14 @@ function generateSurfaceThemeCss(themes, utilityPrefix, runtimePrefix, schema) {
|
|
|
322
351
|
tailwindVars.push(` --color-${utilityPrefix}-surface-${name}-subtle: rgb(${theme.colorSubtle});`);
|
|
323
352
|
tailwindVars.push(` --color-${utilityPrefix}-surface-${name}-border: rgb(${theme.border});`);
|
|
324
353
|
if (theme.interactionColor) {
|
|
325
|
-
|
|
326
|
-
tailwindVars
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
354
|
+
const { color, onColor, inkColor } = theme.interactionColor;
|
|
355
|
+
pushStaticInteractionColors(tailwindVars, `--color-${utilityPrefix}-surface-${name}-interaction`, color);
|
|
356
|
+
if (onColor) {
|
|
357
|
+
pushStaticInteractionColors(tailwindVars, `--color-${utilityPrefix}-surface-${name}-on-interaction`, onColor);
|
|
358
|
+
}
|
|
359
|
+
if (inkColor) {
|
|
360
|
+
pushStaticInteractionColors(tailwindVars, `--color-${utilityPrefix}-surface-${name}-interaction-ink`, inkColor);
|
|
361
|
+
}
|
|
330
362
|
}
|
|
331
363
|
tailwindVars.push('');
|
|
332
364
|
}
|
|
@@ -420,11 +452,39 @@ ${tailwindVars.join('\n')}
|
|
|
420
452
|
${themeVars.join('\n')}
|
|
421
453
|
}
|
|
422
454
|
|
|
423
|
-
${aliasBlock}
|
|
455
|
+
${aliasBlock}
|
|
456
|
+
${buildSurfaceColorScope(runtimePrefix)}`;
|
|
457
|
+
}
|
|
458
|
+
// The reserved `surface` color scope. It bridges the two theming systems - color variables out of
|
|
459
|
+
// surface variables - so `[etProvideColor]="'surface'"` renders a component in the neutral of
|
|
460
|
+
// whatever surface it sits on. It lives here rather than in the SDK's own CSS because a stylesheet
|
|
461
|
+
// shipped with `ProvideColorDirective` would land in every bundle that themes anything, and only
|
|
462
|
+
// apps that use the scope should pay for it.
|
|
463
|
+
function buildSurfaceColorScope(runtimePrefix) {
|
|
464
|
+
const tint = `var(--${runtimePrefix}-surface-interaction, var(--${runtimePrefix}-surface-color))`;
|
|
465
|
+
const on = `var(--${runtimePrefix}-surface-on-interaction, var(--${runtimePrefix}-surface-background))`;
|
|
466
|
+
const ink = `var(--${runtimePrefix}-surface-interaction-ink, var(--${runtimePrefix}-surface-color))`;
|
|
467
|
+
const state = (name, source, fallback) => INTERACTION_STATE_SUFFIXES.map((suffix) => ` --${runtimePrefix}-color-${name}${suffix}: ${suffix ? `var(--${runtimePrefix}-surface-${source}${suffix}, ${fallback})` : fallback};`).join('\n');
|
|
468
|
+
return `/* The reserved \`surface\` color: resolves the color tokens from the ambient surface's neutral swatch. */
|
|
469
|
+
@layer base {
|
|
470
|
+
.${runtimePrefix}-color--surface {
|
|
471
|
+
${state('primary', 'interaction', tint)}
|
|
472
|
+
|
|
473
|
+
${state('on-primary', 'on-interaction', on)}
|
|
474
|
+
|
|
475
|
+
${state('primary-ink', 'interaction-ink', ink)}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
`;
|
|
424
479
|
}
|
|
425
480
|
// Dynamic surface color declarations (unindented). Emitted in `@theme` (so Tailwind generates
|
|
426
481
|
// the utilities) and re-declared on every surface selector (so the utilities resolve per scope).
|
|
427
482
|
function buildDynamicSurfaceColors(utilityPrefix, runtimePrefix) {
|
|
483
|
+
// `on-interaction` and `interaction-ink` are optional per theme, so each falls back to the
|
|
484
|
+
// surface's own background/color - the same defaults the `.<runtimePrefix>-color--surface`
|
|
485
|
+
// bridge applies.
|
|
486
|
+
const onFallback = `var(--${runtimePrefix}-surface-background)`;
|
|
487
|
+
const inkFallback = `var(--${runtimePrefix}-surface-color)`;
|
|
428
488
|
return [
|
|
429
489
|
`--color-${utilityPrefix}-surface-bg: rgb(var(--${runtimePrefix}-surface-background));`,
|
|
430
490
|
`--color-${utilityPrefix}-surface: rgb(var(--${runtimePrefix}-surface-color));`,
|
|
@@ -436,8 +496,35 @@ function buildDynamicSurfaceColors(utilityPrefix, runtimePrefix) {
|
|
|
436
496
|
`--color-${utilityPrefix}-surface-interaction-focus: rgb(var(--${runtimePrefix}-surface-interaction-focus));`,
|
|
437
497
|
`--color-${utilityPrefix}-surface-interaction-active: rgb(var(--${runtimePrefix}-surface-interaction-active));`,
|
|
438
498
|
`--color-${utilityPrefix}-surface-interaction-disabled: rgb(var(--${runtimePrefix}-surface-interaction-disabled));`,
|
|
499
|
+
...INTERACTION_STATE_SUFFIXES.map((suffix) => `--color-${utilityPrefix}-surface-on-interaction${suffix}: rgb(var(--${runtimePrefix}-surface-on-interaction${suffix}, ${onFallback}));`),
|
|
500
|
+
...INTERACTION_STATE_SUFFIXES.map((suffix) => `--color-${utilityPrefix}-surface-interaction-ink${suffix}: rgb(var(--${runtimePrefix}-surface-interaction-ink${suffix}, ${inkFallback}));`),
|
|
439
501
|
];
|
|
440
502
|
}
|
|
503
|
+
const INTERACTION_STATE_SUFFIXES = ['', '-hover', '-focus', '-active', '-disabled'];
|
|
504
|
+
// Fills the optional states from the ones that are set, matching how the color theme generator
|
|
505
|
+
// resolves a swatch: hover falls back to default, focus to hover, active and disabled to default.
|
|
506
|
+
function resolveInteractionStates(map) {
|
|
507
|
+
const hover = map.hover || map.default;
|
|
508
|
+
return {
|
|
509
|
+
'': map.default,
|
|
510
|
+
'-hover': hover,
|
|
511
|
+
'-focus': map.focus || hover,
|
|
512
|
+
'-active': map.active || map.default,
|
|
513
|
+
'-disabled': map.disabled || map.default,
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
function pushStaticInteractionColors(vars, name, map) {
|
|
517
|
+
const states = resolveInteractionStates(map);
|
|
518
|
+
for (const suffix of INTERACTION_STATE_SUFFIXES) {
|
|
519
|
+
vars.push(` ${name}${suffix}: rgb(${states[suffix]});`);
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
function pushRuntimeInteractionVars(vars, name, map, indent) {
|
|
523
|
+
const states = resolveInteractionStates(map);
|
|
524
|
+
for (const suffix of INTERACTION_STATE_SUFFIXES) {
|
|
525
|
+
vars.push(`${indent}${name}${suffix}: ${states[suffix]};`);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
441
528
|
function pushSurfaceVars(vars, runtimePrefix, theme, indent) {
|
|
442
529
|
vars.push(`${indent}--${runtimePrefix}-surface-background: ${theme.background};`);
|
|
443
530
|
vars.push(`${indent}--${runtimePrefix}-surface-color: ${theme.color};`);
|
|
@@ -447,11 +534,14 @@ function pushSurfaceVars(vars, runtimePrefix, theme, indent) {
|
|
|
447
534
|
vars.push(`${indent}--${runtimePrefix}-surface-type: ${theme.type};`);
|
|
448
535
|
vars.push(`${indent}--${runtimePrefix}-surface-elevation: ${theme.elevation};`);
|
|
449
536
|
if (theme.interactionColor) {
|
|
450
|
-
|
|
451
|
-
vars
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
537
|
+
const { color, onColor, inkColor } = theme.interactionColor;
|
|
538
|
+
pushRuntimeInteractionVars(vars, `--${runtimePrefix}-surface-interaction`, color, indent);
|
|
539
|
+
if (onColor) {
|
|
540
|
+
pushRuntimeInteractionVars(vars, `--${runtimePrefix}-surface-on-interaction`, onColor, indent);
|
|
541
|
+
}
|
|
542
|
+
if (inkColor) {
|
|
543
|
+
pushRuntimeInteractionVars(vars, `--${runtimePrefix}-surface-interaction-ink`, inkColor, indent);
|
|
544
|
+
}
|
|
455
545
|
}
|
|
456
546
|
}
|
|
457
547
|
function findMainStylesFile(tree) {
|
package/package.json
CHANGED
package/types/ethlete-core.d.ts
CHANGED
|
@@ -3066,13 +3066,33 @@ declare const SURFACE_TYPE: {
|
|
|
3066
3066
|
};
|
|
3067
3067
|
type SurfaceType = (typeof SURFACE_TYPE)[keyof typeof SURFACE_TYPE];
|
|
3068
3068
|
type SurfaceThemeColor = `${number} ${number} ${number}`;
|
|
3069
|
-
type
|
|
3069
|
+
type SurfaceInteractionColorMap = {
|
|
3070
3070
|
default: SurfaceThemeColor;
|
|
3071
3071
|
hover: SurfaceThemeColor;
|
|
3072
3072
|
focus: SurfaceThemeColor;
|
|
3073
3073
|
active: SurfaceThemeColor;
|
|
3074
3074
|
disabled: SurfaceThemeColor;
|
|
3075
3075
|
};
|
|
3076
|
+
type SurfaceOnInteractionColorMap = {
|
|
3077
|
+
default: SurfaceThemeColor;
|
|
3078
|
+
hover?: SurfaceThemeColor;
|
|
3079
|
+
focus?: SurfaceThemeColor;
|
|
3080
|
+
active?: SurfaceThemeColor;
|
|
3081
|
+
disabled?: SurfaceThemeColor;
|
|
3082
|
+
};
|
|
3083
|
+
/**
|
|
3084
|
+
* The surface's neutral color, shaped like a color theme's swatch. It serves both roles: `color`
|
|
3085
|
+
* is the tint source `[etSurfaceInteractive]` mixes for hover/active feedback, and the whole
|
|
3086
|
+
* swatch is the palette a component picks up from `[etProvideColor]="'surface'"`.
|
|
3087
|
+
*
|
|
3088
|
+
* `onColor` (text on a filled neutral) defaults to the surface background, `inkColor` (text and
|
|
3089
|
+
* borders on a tinted or transparent neutral) to the surface color.
|
|
3090
|
+
*/
|
|
3091
|
+
type SurfaceInteractionColor = {
|
|
3092
|
+
color: SurfaceInteractionColorMap;
|
|
3093
|
+
onColor?: SurfaceOnInteractionColorMap;
|
|
3094
|
+
inkColor?: SurfaceOnInteractionColorMap;
|
|
3095
|
+
};
|
|
3076
3096
|
type SurfaceTheme = {
|
|
3077
3097
|
name: string;
|
|
3078
3098
|
type: SurfaceType;
|
|
@@ -3226,6 +3246,16 @@ interface EthleteColorThemeNameRegistry {
|
|
|
3226
3246
|
type RegisteredColorThemeName = EthleteColorThemeNameRegistry extends {
|
|
3227
3247
|
name: infer N extends string;
|
|
3228
3248
|
} ? N : string;
|
|
3249
|
+
/**
|
|
3250
|
+
* Reserved color name. Resolves the color tokens from the ambient surface's neutral swatch
|
|
3251
|
+
* (`SurfaceTheme['interactionColor']`) instead of a registered accent, so a secondary action can
|
|
3252
|
+
* read as chrome without the app registering a neutral color theme. Apps must not register a color
|
|
3253
|
+
* theme under this name.
|
|
3254
|
+
*/
|
|
3255
|
+
declare const SURFACE_COLOR = "surface";
|
|
3256
|
+
type SurfaceColor = typeof SURFACE_COLOR;
|
|
3257
|
+
/** Everything `[etProvideColor]` accepts: a registered theme name, a theme object, `surface`, or nothing. */
|
|
3258
|
+
type ColorThemeInput = RegisteredColorThemeName | SurfaceColor | ColorTheme | null;
|
|
3229
3259
|
declare const createCssColorThemeName: (name: string) => string;
|
|
3230
3260
|
declare const ɵProvideColorThemes: (valueOverride?: (ColorTheme | undefined)[] | undefined) => _angular_core.Provider[];
|
|
3231
3261
|
declare const injectColorThemes: _ethlete_core.InjectFn<ColorTheme[]>;
|
|
@@ -3237,6 +3267,33 @@ declare const injectWarningTheme: () => ColorTheme;
|
|
|
3237
3267
|
declare const injectSuccessTheme: () => ColorTheme;
|
|
3238
3268
|
declare const injectDefaultColorTheme: () => ColorTheme;
|
|
3239
3269
|
|
|
3270
|
+
/** One choice in a {@link provideColorPalette} palette. */
|
|
3271
|
+
type ColorPaletteEntry = {
|
|
3272
|
+
/** The color theme this choice selects - a name the app registered with `provideColorThemesWithTailwind4`. */
|
|
3273
|
+
token: RegisteredColorThemeName;
|
|
3274
|
+
/** What a user reads next to the swatch. Provide it already translated. */
|
|
3275
|
+
label: string;
|
|
3276
|
+
};
|
|
3277
|
+
/**
|
|
3278
|
+
* The color themes a subtree may offer a user as pickable choices, in the order they should appear.
|
|
3279
|
+
* A curated slice of what `provideColorThemesWithTailwind4` registered: an app registers every theme
|
|
3280
|
+
* it renders with, including ones nobody should pick by hand (`error`, `warning`), and adds the
|
|
3281
|
+
* user-facing label a swatch needs.
|
|
3282
|
+
*
|
|
3283
|
+
* Components that let a user choose a color read it optionally and fall back to accepting a raw
|
|
3284
|
+
* theme name when it is absent - the scheduler's `colorToken` field is the reference consumer.
|
|
3285
|
+
*
|
|
3286
|
+
* @example
|
|
3287
|
+
* provideColorPalette([
|
|
3288
|
+
* { token: 'brand', label: 'Team green' },
|
|
3289
|
+
* { token: 'ocean', label: 'Training blue' },
|
|
3290
|
+
* ]);
|
|
3291
|
+
*/
|
|
3292
|
+
declare const provideColorPalette: (valueOverride?: (ColorPaletteEntry | undefined)[] | undefined) => _angular_core.Provider[];
|
|
3293
|
+
/** The palette from {@link provideColorPalette}. Pass `{ optional: true }` - most apps provide none. */
|
|
3294
|
+
declare const injectColorPalette: _ethlete_core.InjectFn<ColorPaletteEntry[]>;
|
|
3295
|
+
declare const COLOR_PALETTE: _angular_core.InjectionToken<ColorPaletteEntry[]>;
|
|
3296
|
+
|
|
3240
3297
|
/**
|
|
3241
3298
|
* @deprecated Migrate to Tailwind v4. Intent to remove in v6.
|
|
3242
3299
|
*/
|
|
@@ -3291,8 +3348,8 @@ declare class ProvideColorDirective {
|
|
|
3291
3348
|
private parentProvider;
|
|
3292
3349
|
private currentProviderSync;
|
|
3293
3350
|
private forcedColor;
|
|
3294
|
-
color: InputSignal<
|
|
3295
|
-
effectiveColor: _angular_core.Signal<
|
|
3351
|
+
color: InputSignal<ColorThemeInput | undefined>;
|
|
3352
|
+
effectiveColor: _angular_core.Signal<ColorThemeInput | undefined>;
|
|
3296
3353
|
/**
|
|
3297
3354
|
* The color that actually applies at this provider's location: its own effective color, or -
|
|
3298
3355
|
* when this provider is passive (no input, nothing forced) - the nearest ancestor provider's.
|
|
@@ -3300,13 +3357,13 @@ declare class ProvideColorDirective {
|
|
|
3300
3357
|
* consumers that re-apply context across detached DOM (overlay panes) must use this instead
|
|
3301
3358
|
* of `effectiveColor` or a passive in-between provider (e.g. a form field's) erases the theme.
|
|
3302
3359
|
*/
|
|
3303
|
-
resolvedColor: _angular_core.Signal<
|
|
3360
|
+
resolvedColor: _angular_core.Signal<ColorThemeInput | undefined>;
|
|
3304
3361
|
colorName: _angular_core.Signal<string | undefined>;
|
|
3305
3362
|
protected themeClass: _angular_core.Signal<string>;
|
|
3306
3363
|
syncWithProvider(provider: ProvideColorDirective): void;
|
|
3307
3364
|
stopSyncWithProvider(): void;
|
|
3308
3365
|
/** @internal */
|
|
3309
|
-
forceColor(color:
|
|
3366
|
+
forceColor(color: ColorThemeInput): void;
|
|
3310
3367
|
/** @internal */
|
|
3311
3368
|
clearForcedColor(): void;
|
|
3312
3369
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProvideColorDirective, never>;
|
|
@@ -3341,8 +3398,8 @@ declare const injectSurfaceContextTracker: _ethlete_core.InjectFn<SurfaceContext
|
|
|
3341
3398
|
* Same shape as `ColorInteractiveDirective` - reacts to its own `:hover`/`:focus-visible`/
|
|
3342
3399
|
* `:active`/`[disabled]` - but drives `--et-surface-interaction-*`, a neutral/muted tint, instead
|
|
3343
3400
|
* of the ambient color theme. Use it for chrome-level interaction feedback that shouldn't borrow
|
|
3344
|
-
* the page's brand color (a tab trigger's hover state, a
|
|
3345
|
-
*
|
|
3401
|
+
* the page's brand color (a tab trigger's hover state, a row's hover fill). For a whole component
|
|
3402
|
+
* that should render neutral rather than accented, provide the `surface` color instead.
|
|
3346
3403
|
*
|
|
3347
3404
|
* Has no container/exclude/has-focus variants: it has no descendant-cascading CSS at all, so
|
|
3348
3405
|
* applying it to a wrapper with independently-interactive children is safe by construction -
|
|
@@ -3628,7 +3685,7 @@ type UnsavedChangesGuardRef<T> = UnsavedChangesTrackerRef<T> & {
|
|
|
3628
3685
|
declare const createUnsavedChangesGuard: <T>(config: CreateUnsavedChangesGuardConfig<T>) => UnsavedChangesGuardRef<T>;
|
|
3629
3686
|
|
|
3630
3687
|
/** The version of `@ethlete/core` this build was cut from. */
|
|
3631
|
-
declare const CORE_VERSION = "5.0.0-next.
|
|
3688
|
+
declare const CORE_VERSION = "5.0.0-next.47";
|
|
3632
3689
|
|
|
3633
|
-
export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AutoSurfaceDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, COLOR_PROVIDER, CORE_VERSION, ClickOutsideDirective, ColorInteractiveContainerDirective, ColorInteractiveDirective, ColorInteractiveExcludeDirective, ColorInteractiveHasFocusDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, DragHandleDirective, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, ET_RESTORE_SCROLL, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd_d as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MatchStateType, MustMatch, NOTIFICATION_CLICK_MESSAGE_TYPE, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RestoreScrollDirective, RuntimeError, SURFACE_PROVIDER, SURFACE_TYPE, SWIPE_VELOCITY_WINDOW_MS, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, UNSAVED_CHANGES_TITLE_MARKER, ValidateAtLeastOneRequired, Validators, anchoredOverlayPosition, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyFaviconOverlay, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHeadTitleMarker, applyHostListener, applyHostListeners, applyInitialFocus, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, areScrollStatesEqual, bindProps, boolBreakpointTransform, booleanBreakpointAttribute, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createBulkPropertyBinding, createCanAnimateSignal, createComponentId, createCssColorThemeName, createCssSurfaceName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createObjectUrlHandle, createOverlayRuntimeRef, createPropHandlers, createPropertyBinding, createProps, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSetup, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUnsavedChangesGuard, createUnsavedChangesTabLock, createUnsavedChangesTracker, createUserConsentProvider, deferredSignal, defineLabels, defineProvider, defineRootProvider, defineStaticProvider, defineStaticRootProvider, deleteCookie, dragGestureFrom, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, enableAnchoredOverlayPositionExtras, equal, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, holdScrollRestoration, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDefaultColorTheme, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFaviconStore, injectFileDownload, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsDocumentVisible, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectNotifications, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorThemes, provideColorThemesWithTailwind4, provideFaviconStore, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideNotifications, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideUnsavedChangesCoordinator, provideViewportConfig, randomId, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, resetPositioningStyles, resolveAppRootColorProvider, resolveSurfaceByElevation, round, routerDisableScrollTop, routerRestoreScroll, scrollToElement, setBackdropStyles, setBaseElementStyles, setCookie, setInputSignal, setupFocusTrap, setupPositioning, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, slugify, suppressTextSelection, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toInjectFn, toProvideFn, toStringBinding, toToken, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
|
|
3634
|
-
export type { AlternateLanguagesConfig, AnchoredPositionMiddlewareExtras, AnchoredPositionSetup, AngularRenderer, AnimatedBlockSizeConfig, AnimatedLifecycleState, AnimatedNumberSignal, AnimatedSizeAxis, AnimationEndEvent, AnyTemplateType, ArticleConfig, BindPropsOptions, BoolBreakpointSignal, Breakpoint, BreakpointInput, BreakpointMap, BuildMediaQueryOptions, BuildSignalEffectsConfig, ColorTheme, ColorThemeType, ComponentTemplate, ComponentType, ComponentTypeWithInputs, ConsentHandler, ControlValueSignalOptions, CreateLoggerConfig, CreatePropsOptions, CreateSessionMemoryConfig, CreateUnsavedChangesGuardConfig, CreateUnsavedChangesTabLockConfig, CreateUnsavedChangesTrackerConfig, CreateUserConsentProviderOptions, CurrentElementVisibility, CursorDragScrollDirection, CursorDragScrollOptions, DragEndEvent, DragGestureEvent, DragMoveEvent, DragStartEvent, ElementDimensions, ElementLastScrollDirection, ElementLastScrollDirectionType, ElementRect, ElementScrollState, ElementSignal, ElementSignalValue, ElementSize, EthleteColorThemeNameRegistry, EthleteSurfaceThemeNameRegistry, FaviconOverlay, FileDownloadOptions, FlipAnimationConfig, HeadBinding, HostProps, InjectFn, InjectQueryParamConfig, InjectUtilConfig, InjectUtilTransformConfig, IntersectionObserverEntryWithDetails, IsElementVisibleOptions, LabelsDefinition, LabelsSource, LinkConfig, LinkStoreConfig, LogicalSize, MaybeSignal, MetaConfig, MetaTagConfig, NgClassType, NgTemplateTemplate, NormalizedGameResultType, NormalizedMatchParticipant, NormalizedMatchParticipants, NormalizedMatchScore, NormalizedUnsavedChangesSource, NotificationActionConfig, NotificationClickContext, NotificationClickMessage, NotificationDeliveryPath, NotificationPermissionState, NotificationRef, Notifications, NullableElementDimensions, NumberBreakpointSignal, ObjectUrlHandle, OnThemeColorMap, OpenGraphConfig, OverlayRuntimeAnchoredPosition, OverlayRuntimeAnimationDelegate, OverlayRuntimeAnimationDelegateEnterContext, OverlayRuntimeAnimationDelegateLeaveContext, OverlayRuntimeAutoFocusTarget, OverlayRuntimeCenteredPosition, OverlayRuntimeCloseEvent, OverlayRuntimeCloseGuard, OverlayRuntimeCloseSource, OverlayRuntimeComponentBase, OverlayRuntimeElements, OverlayRuntimeGlobalPosition, OverlayRuntimeGlobalPositionAlignment, OverlayRuntimeMountConfig, OverlayRuntimePositionStrategy, OverlayRuntimeRef, OverlayRuntimeRole, OverlayRuntimeShiftOptions, OverlayRuntimeState, PropHandlers, Props, PropsAttachedElements, PropsAttachedElementsInternal, PropsInternal, ProviderDefinition, ProviderDefinitionOptions, RegisteredColorThemeName, RegisteredSurfaceThemeName, ResizeEdge, ResizeMoveEvent, ResourceHintsConfig, RobotsConfig, RouterDisableScrollTopConfig, RouterState, ScrollContainerTarget, ScrollItemTarget, ScrollRestorationRestoreConfig, ScrollRestorationScrollElement, ScrollSnapOrigin, ScrollSnapTarget, ScrollToElementOptions, SetupScrollRestorationConfig, ShowNotificationConfig, SignalAnimatedNumberOptions, SignalElementBindingComplexType, SignalElementBindingType, SignalElementChildrenOptions, SignalElementIntersectionOptions, SignalElementScrollStateOptions, SocialMediaConfig, StaticProviderDefinition, StringTemplate, StructuredDataConfig, StyleManager, SurfaceContextEntry, SurfaceContextSurface, SurfaceContextTracker, SurfaceInteractionColor, SurfaceTheme, SurfaceThemeColor, SurfaceType, SwipeEndEvent, SwipeTracker, SwipeUpdateEvent, SyncSignalOptions, TemplateRefWithContext, ThemeColor, ThemeColorMap, ThemeHSLColor, ThemeInkColorMap, ThemeRGBColor, ThemeSwatch, TitleConfig, TitlePart, Translatable, TwitterCardConfig, TypedBreakpointSignal, UnbindPropsOptions, UnsavedChangesAbandonReason, UnsavedChangesConfirmContext, UnsavedChangesConfirmFn, UnsavedChangesGuardRef, UnsavedChangesRegistration, UnsavedChangesSource, UnsavedChangesTabConfig, UnsavedChangesTabLockRef, UnsavedChangesTrackerRef, ValidateAtLeastOneRequiredConfig, Vec2, ViewportConfig };
|
|
3690
|
+
export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AutoSurfaceDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, COLOR_PALETTE, COLOR_PROVIDER, CORE_VERSION, ClickOutsideDirective, ColorInteractiveContainerDirective, ColorInteractiveDirective, ColorInteractiveExcludeDirective, ColorInteractiveHasFocusDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, DragHandleDirective, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, ET_RESTORE_SCROLL, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd_d as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MatchStateType, MustMatch, NOTIFICATION_CLICK_MESSAGE_TYPE, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RestoreScrollDirective, RuntimeError, SURFACE_COLOR, SURFACE_PROVIDER, SURFACE_TYPE, SWIPE_VELOCITY_WINDOW_MS, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, UNSAVED_CHANGES_TITLE_MARKER, ValidateAtLeastOneRequired, Validators, anchoredOverlayPosition, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyFaviconOverlay, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHeadTitleMarker, applyHostListener, applyHostListeners, applyInitialFocus, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, areScrollStatesEqual, bindProps, boolBreakpointTransform, booleanBreakpointAttribute, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createBulkPropertyBinding, createCanAnimateSignal, createComponentId, createCssColorThemeName, createCssSurfaceName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createObjectUrlHandle, createOverlayRuntimeRef, createPropHandlers, createPropertyBinding, createProps, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSetup, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUnsavedChangesGuard, createUnsavedChangesTabLock, createUnsavedChangesTracker, createUserConsentProvider, deferredSignal, defineLabels, defineProvider, defineRootProvider, defineStaticProvider, defineStaticRootProvider, deleteCookie, dragGestureFrom, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, enableAnchoredOverlayPositionExtras, equal, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, holdScrollRestoration, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorPalette, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDefaultColorTheme, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFaviconStore, injectFileDownload, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsDocumentVisible, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectNotifications, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorPalette, provideColorThemes, provideColorThemesWithTailwind4, provideFaviconStore, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideNotifications, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideUnsavedChangesCoordinator, provideViewportConfig, randomId, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, resetPositioningStyles, resolveAppRootColorProvider, resolveSurfaceByElevation, round, routerDisableScrollTop, routerRestoreScroll, scrollToElement, setBackdropStyles, setBaseElementStyles, setCookie, setInputSignal, setupFocusTrap, setupPositioning, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, slugify, suppressTextSelection, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toInjectFn, toProvideFn, toStringBinding, toToken, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
|
|
3691
|
+
export type { AlternateLanguagesConfig, AnchoredPositionMiddlewareExtras, AnchoredPositionSetup, AngularRenderer, AnimatedBlockSizeConfig, AnimatedLifecycleState, AnimatedNumberSignal, AnimatedSizeAxis, AnimationEndEvent, AnyTemplateType, ArticleConfig, BindPropsOptions, BoolBreakpointSignal, Breakpoint, BreakpointInput, BreakpointMap, BuildMediaQueryOptions, BuildSignalEffectsConfig, ColorPaletteEntry, ColorTheme, ColorThemeInput, ColorThemeType, ComponentTemplate, ComponentType, ComponentTypeWithInputs, ConsentHandler, ControlValueSignalOptions, CreateLoggerConfig, CreatePropsOptions, CreateSessionMemoryConfig, CreateUnsavedChangesGuardConfig, CreateUnsavedChangesTabLockConfig, CreateUnsavedChangesTrackerConfig, CreateUserConsentProviderOptions, CurrentElementVisibility, CursorDragScrollDirection, CursorDragScrollOptions, DragEndEvent, DragGestureEvent, DragMoveEvent, DragStartEvent, ElementDimensions, ElementLastScrollDirection, ElementLastScrollDirectionType, ElementRect, ElementScrollState, ElementSignal, ElementSignalValue, ElementSize, EthleteColorThemeNameRegistry, EthleteSurfaceThemeNameRegistry, FaviconOverlay, FileDownloadOptions, FlipAnimationConfig, HeadBinding, HostProps, InjectFn, InjectQueryParamConfig, InjectUtilConfig, InjectUtilTransformConfig, IntersectionObserverEntryWithDetails, IsElementVisibleOptions, LabelsDefinition, LabelsSource, LinkConfig, LinkStoreConfig, LogicalSize, MaybeSignal, MetaConfig, MetaTagConfig, NgClassType, NgTemplateTemplate, NormalizedGameResultType, NormalizedMatchParticipant, NormalizedMatchParticipants, NormalizedMatchScore, NormalizedUnsavedChangesSource, NotificationActionConfig, NotificationClickContext, NotificationClickMessage, NotificationDeliveryPath, NotificationPermissionState, NotificationRef, Notifications, NullableElementDimensions, NumberBreakpointSignal, ObjectUrlHandle, OnThemeColorMap, OpenGraphConfig, OverlayRuntimeAnchoredPosition, OverlayRuntimeAnimationDelegate, OverlayRuntimeAnimationDelegateEnterContext, OverlayRuntimeAnimationDelegateLeaveContext, OverlayRuntimeAutoFocusTarget, OverlayRuntimeCenteredPosition, OverlayRuntimeCloseEvent, OverlayRuntimeCloseGuard, OverlayRuntimeCloseSource, OverlayRuntimeComponentBase, OverlayRuntimeElements, OverlayRuntimeGlobalPosition, OverlayRuntimeGlobalPositionAlignment, OverlayRuntimeMountConfig, OverlayRuntimePositionStrategy, OverlayRuntimeRef, OverlayRuntimeRole, OverlayRuntimeShiftOptions, OverlayRuntimeState, PropHandlers, Props, PropsAttachedElements, PropsAttachedElementsInternal, PropsInternal, ProviderDefinition, ProviderDefinitionOptions, RegisteredColorThemeName, RegisteredSurfaceThemeName, ResizeEdge, ResizeMoveEvent, ResourceHintsConfig, RobotsConfig, RouterDisableScrollTopConfig, RouterState, ScrollContainerTarget, ScrollItemTarget, ScrollRestorationRestoreConfig, ScrollRestorationScrollElement, ScrollSnapOrigin, ScrollSnapTarget, ScrollToElementOptions, SetupScrollRestorationConfig, ShowNotificationConfig, SignalAnimatedNumberOptions, SignalElementBindingComplexType, SignalElementBindingType, SignalElementChildrenOptions, SignalElementIntersectionOptions, SignalElementScrollStateOptions, SocialMediaConfig, StaticProviderDefinition, StringTemplate, StructuredDataConfig, StyleManager, SurfaceColor, SurfaceContextEntry, SurfaceContextSurface, SurfaceContextTracker, SurfaceInteractionColor, SurfaceInteractionColorMap, SurfaceOnInteractionColorMap, SurfaceTheme, SurfaceThemeColor, SurfaceType, SwipeEndEvent, SwipeTracker, SwipeUpdateEvent, SyncSignalOptions, TemplateRefWithContext, ThemeColor, ThemeColorMap, ThemeHSLColor, ThemeInkColorMap, ThemeRGBColor, ThemeSwatch, TitleConfig, TitlePart, Translatable, TwitterCardConfig, TypedBreakpointSignal, UnbindPropsOptions, UnsavedChangesAbandonReason, UnsavedChangesConfirmContext, UnsavedChangesConfirmFn, UnsavedChangesGuardRef, UnsavedChangesRegistration, UnsavedChangesSource, UnsavedChangesTabConfig, UnsavedChangesTabLockRef, UnsavedChangesTrackerRef, ValidateAtLeastOneRequiredConfig, Vec2, ViewportConfig };
|