@yahoo/uds-v5-wip 1.61.0 → 1.62.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/dist/config/dist/AssetGroup.d.ts +75 -0
- package/dist/config/dist/AssetGroup.js +114 -0
- package/dist/config/dist/Component.d.ts +309 -0
- package/dist/config/dist/Component.js +897 -0
- package/dist/config/dist/ComponentGroup.d.ts +21 -0
- package/dist/config/dist/ComponentGroup.js +46 -0
- package/dist/config/dist/CompositeStyle.d.ts +28 -0
- package/dist/config/dist/CompositeStyle.js +52 -0
- package/dist/config/dist/Config.d.ts +422 -0
- package/dist/config/dist/Config.js +1426 -0
- package/dist/config/dist/Mode.d.ts +42 -0
- package/dist/config/dist/Mode.js +81 -0
- package/dist/config/dist/Modifier.d.ts +52 -0
- package/dist/config/dist/Modifier.js +97 -0
- package/dist/config/dist/MotionDef.d.ts +50 -0
- package/dist/config/dist/MotionDef.js +97 -0
- package/dist/config/dist/Props.d.ts +235 -126
- package/dist/config/dist/Provider.d.ts +21 -0
- package/dist/config/dist/Provider.js +14 -0
- package/dist/config/dist/StyleProp.d.ts +113 -0
- package/dist/config/dist/StyleProp.js +197 -0
- package/dist/config/dist/Token.d.ts +56 -0
- package/dist/config/dist/Token.js +112 -0
- package/dist/config/dist/TokenGroup.d.ts +33 -0
- package/dist/config/dist/TokenGroup.js +68 -0
- package/dist/config/dist/asset-kind.d.ts +56 -0
- package/dist/config/dist/asset-kind.js +29 -0
- package/dist/config/dist/brands.d.ts +31 -0
- package/dist/config/dist/brands.js +20 -0
- package/dist/config/dist/captureCallerPath.d.ts +49 -0
- package/dist/config/dist/captureCallerPath.js +95 -0
- package/dist/config/dist/colorExpressions.d.ts +132 -0
- package/dist/config/dist/colorExpressions.js +148 -0
- package/dist/config/dist/defineAssetGroup.d.ts +158 -0
- package/dist/config/dist/defineAssetGroup.js +263 -0
- package/dist/config/dist/defineProvider.d.ts +30 -0
- package/dist/config/dist/defineProvider.js +60 -0
- package/dist/config/dist/element-marker.d.ts +55 -0
- package/dist/config/dist/element-marker.js +113 -0
- package/dist/config/dist/entity-utils.d.ts +27 -0
- package/dist/config/dist/entity-utils.js +105 -0
- package/dist/config/dist/factories.d.ts +707 -0
- package/dist/config/dist/factories.js +393 -0
- package/dist/config/dist/foreign-component-name.js +42 -0
- package/dist/config/dist/index.d.ts +30 -21
- package/dist/config/dist/index.js +26 -14
- package/dist/config/dist/interpolate.d.ts +21 -0
- package/dist/config/dist/interpolate.js +10 -0
- package/dist/config/dist/markers.d.ts +218 -0
- package/dist/config/dist/markers.js +67 -0
- package/dist/config/dist/refs.d.ts +143 -69
- package/dist/config/dist/refs.js +95 -113
- package/dist/config/dist/token-override-rows.d.ts +67 -0
- package/dist/config/dist/token-override-rows.js +223 -0
- package/dist/config/dist/tokenValueType.js +138 -0
- package/dist/config/dist/types/css-properties.d.ts +132 -122
- package/dist/config/dist/types/css-property-keywords.d.ts +157 -0
- package/dist/config/dist/types/css-property-keywords.js +616 -0
- package/dist/config/dist/types/css-values.d.ts +18 -16
- package/dist/config/dist/types.d.ts +688 -66
- package/dist/config/dist/units.d.ts +15 -0
- package/dist/config/dist/units.js +16 -0
- package/dist/config.d.ts +31 -22
- package/dist/config.js +28 -16
- package/dist/loader/dist/loader/artifacts.js +26 -9
- package/dist/loader/dist/loader.d.ts +11 -23
- package/dist/loader/dist/loader.js +54 -99
- package/dist/loader/dist/next.js +3 -3
- package/dist/loader/dist/transform-runner.js +1 -8
- package/dist/loader/dist/unplugin.d.ts +2 -2
- package/dist/loader/dist/unplugin.js +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/dist/index.js +1 -0
- package/dist/utils/dist/motion-utils/resolveMotionState.d.ts +35 -0
- package/dist/utils/dist/motion-utils/resolveMotionState.js +33 -0
- package/dist/utils/dist/string-utils/componentClassName.d.ts +41 -8
- package/dist/utils/dist/string-utils/componentClassName.js +48 -11
- package/dist/utils.d.ts +3 -2
- package/dist/utils.js +3 -2
- package/package.json +3 -3
- package/dist/codegen/dist/loader/getLoaderArtifacts.js +0 -2
- package/dist/config/dist/bindRender.d.ts +0 -16
- package/dist/config/dist/bindRender.js +0 -310
- package/dist/config/dist/className.d.ts +0 -54
- package/dist/config/dist/className.js +0 -77
- package/dist/config/dist/component-config.d.ts +0 -862
- package/dist/config/dist/component-config.js +0 -163
- package/dist/config/dist/component-refs.d.ts +0 -121
- package/dist/config/dist/createConfig.d.ts +0 -456
- package/dist/config/dist/createConfig.js +0 -503
- package/dist/config/dist/createStyler.d.ts +0 -35
- package/dist/config/dist/createStyler.js +0 -93
- package/dist/config/dist/defineComponent.d.ts +0 -317
- package/dist/config/dist/defineComponent.js +0 -264
- package/dist/config/dist/defineCompositeStyle.d.ts +0 -93
- package/dist/config/dist/defineCompositeStyle.js +0 -18
- package/dist/config/dist/defineMotionConfig.d.ts +0 -152
- package/dist/config/dist/definePreview.d.ts +0 -45
- package/dist/config/dist/definePreview.js +0 -35
- package/dist/config/dist/defineStyleProp.d.ts +0 -289
- package/dist/config/dist/defineStyleProp.js +0 -61
- package/dist/config/dist/merge-utils.js +0 -51
- package/dist/config/dist/propertyAcceptedTypes.d.ts +0 -19
- package/dist/config/dist/propertyAcceptedTypes.js +0 -220
- package/dist/config/dist/resolveCompoundProps.d.ts +0 -65
- package/dist/config/dist/resolveCompoundProps.js +0 -120
- package/dist/config/dist/resolveStyleProp.d.ts +0 -157
- package/dist/config/dist/resolveStyleProp.js +0 -260
- package/dist/config/dist/runtime-registry.js +0 -37
- package/dist/config/dist/serialize.d.ts +0 -47
- package/dist/config/dist/serialize.js +0 -111
- package/dist/config/dist/sniffTokenType.d.ts +0 -7
- package/dist/config/dist/sniffTokenType.js +0 -67
- package/dist/config/dist/style-prop-runtime.d.ts +0 -75
- package/dist/config/dist/style-prop-runtime.js +0 -390
- package/dist/loader/dist/loader/internal-meta.js +0 -59
- package/dist/loader/dist/loader/lower-new-api-primitive.js +0 -252
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ModeDefinition, ModeOptionDefinition, TokenModifierKey } from "./types.js";
|
|
2
|
+
|
|
3
|
+
//#region ../config/dist/Mode.d.ts
|
|
4
|
+
//#region src/Mode.d.ts
|
|
5
|
+
declare class ModeOption {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly modifier: TokenModifierKey;
|
|
8
|
+
readonly label?: string;
|
|
9
|
+
readonly description?: string;
|
|
10
|
+
readonly css?: string;
|
|
11
|
+
readonly media?: string;
|
|
12
|
+
constructor(args: {
|
|
13
|
+
name: string;
|
|
14
|
+
definition: ModeOptionDefinition;
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Human description for when this option surfaces as a style modifier
|
|
18
|
+
* (`_dark`, `_lg`). Distinguishes appearance/theme modes ("in dark mode")
|
|
19
|
+
* from responsive breakpoints ("at the lg breakpoint"), inferred from
|
|
20
|
+
* whether the option activates via `css` or `media`. Prefers the authored
|
|
21
|
+
* `label`, falling back to the option `name`.
|
|
22
|
+
*/
|
|
23
|
+
describeAsModifier(): string;
|
|
24
|
+
toJSON(): ModeOptionDefinition & {
|
|
25
|
+
name: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
declare class Mode {
|
|
29
|
+
readonly name: string;
|
|
30
|
+
readonly options: ReadonlyMap<string, ModeOption>;
|
|
31
|
+
private _derived?;
|
|
32
|
+
constructor(args: {
|
|
33
|
+
name: string;
|
|
34
|
+
definition: ModeDefinition;
|
|
35
|
+
});
|
|
36
|
+
get derived(): {
|
|
37
|
+
readonly modifierNames: readonly TokenModifierKey[];
|
|
38
|
+
};
|
|
39
|
+
toJSON(): ModeDefinition;
|
|
40
|
+
} //#endregion
|
|
41
|
+
//#endregion
|
|
42
|
+
export { Mode, ModeOption };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { compact } from "./entity-utils.js";
|
|
2
|
+
//#region ../config/dist/Mode.js
|
|
3
|
+
/**
|
|
4
|
+
* `Mode` — a set of mutually-exclusive options each contributing a
|
|
5
|
+
* modifier (`colorMode: { light, dark }` → `_light`, `_dark`).
|
|
6
|
+
*
|
|
7
|
+
* Owns its options and exposes the derived modifier names produced by
|
|
8
|
+
* the option set.
|
|
9
|
+
*/
|
|
10
|
+
var ModeOption = class {
|
|
11
|
+
name;
|
|
12
|
+
modifier;
|
|
13
|
+
label;
|
|
14
|
+
description;
|
|
15
|
+
css;
|
|
16
|
+
media;
|
|
17
|
+
constructor(args) {
|
|
18
|
+
this.name = args.name;
|
|
19
|
+
this.modifier = args.definition.modifier ?? `_${args.name}`;
|
|
20
|
+
this.label = args.definition.label;
|
|
21
|
+
this.description = args.definition.description;
|
|
22
|
+
this.css = args.definition.css;
|
|
23
|
+
this.media = args.definition.media;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Human description for when this option surfaces as a style modifier
|
|
27
|
+
* (`_dark`, `_lg`). Distinguishes appearance/theme modes ("in dark mode")
|
|
28
|
+
* from responsive breakpoints ("at the lg breakpoint"), inferred from
|
|
29
|
+
* whether the option activates via `css` or `media`. Prefers the authored
|
|
30
|
+
* `label`, falling back to the option `name`.
|
|
31
|
+
*/
|
|
32
|
+
describeAsModifier() {
|
|
33
|
+
const display = this.label ?? this.name;
|
|
34
|
+
if (this.media) return `Conditionally apply styles at the ${display} breakpoint`;
|
|
35
|
+
return `Conditionally apply styles in ${display} mode`;
|
|
36
|
+
}
|
|
37
|
+
toJSON() {
|
|
38
|
+
return {
|
|
39
|
+
name: this.name,
|
|
40
|
+
modifier: this.modifier,
|
|
41
|
+
...compact({
|
|
42
|
+
label: this.label,
|
|
43
|
+
description: this.description,
|
|
44
|
+
css: this.css,
|
|
45
|
+
media: this.media
|
|
46
|
+
})
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var Mode = class {
|
|
51
|
+
name;
|
|
52
|
+
options;
|
|
53
|
+
_derived;
|
|
54
|
+
constructor(args) {
|
|
55
|
+
this.name = args.name;
|
|
56
|
+
const options = /* @__PURE__ */ new Map();
|
|
57
|
+
for (const [optName, optDef] of Object.entries(args.definition)) options.set(optName, new ModeOption({
|
|
58
|
+
name: optName,
|
|
59
|
+
definition: optDef
|
|
60
|
+
}));
|
|
61
|
+
this.options = options;
|
|
62
|
+
}
|
|
63
|
+
get derived() {
|
|
64
|
+
if (!this._derived) {
|
|
65
|
+
const modifierNames = [];
|
|
66
|
+
for (const option of this.options.values()) modifierNames.push(option.modifier);
|
|
67
|
+
this._derived = { modifierNames };
|
|
68
|
+
}
|
|
69
|
+
return this._derived;
|
|
70
|
+
}
|
|
71
|
+
toJSON() {
|
|
72
|
+
const out = {};
|
|
73
|
+
for (const [name, option] of this.options) {
|
|
74
|
+
const { name: _omit, ...rest } = option.toJSON();
|
|
75
|
+
out[name] = rest;
|
|
76
|
+
}
|
|
77
|
+
return out;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
//#endregion
|
|
81
|
+
export { Mode, ModeOption };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CompositeRef, ModeRef } from "./refs.js";
|
|
2
|
+
import { ModifierDefinition, TokenModifierKey } from "./types.js";
|
|
3
|
+
import { CssSelector } from "./brands.js";
|
|
4
|
+
|
|
5
|
+
//#region ../config/dist/Modifier.d.ts
|
|
6
|
+
//#region src/Modifier.d.ts
|
|
7
|
+
type CompositeSelectorLookup = (ref: string) => string | undefined;
|
|
8
|
+
type ModeSelectorLookup = (ref: string) => string | undefined;
|
|
9
|
+
declare class Modifier {
|
|
10
|
+
#private;
|
|
11
|
+
readonly name: TokenModifierKey;
|
|
12
|
+
readonly selector?: string | CompositeRef | ModeRef;
|
|
13
|
+
readonly media?: string;
|
|
14
|
+
readonly description?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Tailwind variant prefix a modifier name maps to. Strip the leading
|
|
17
|
+
* underscore, kebab-case the remainder, append `:`. `_focusVisible` →
|
|
18
|
+
* `focus-visible:`, `_hover` → `hover:`. Static so callers that only
|
|
19
|
+
* have the modifier name string (codegen `prepareModifierProps`,
|
|
20
|
+
* className builders) can derive it without spinning up a Modifier.
|
|
21
|
+
*
|
|
22
|
+
* Loader and runtime must agree byte-for-byte on this output — the
|
|
23
|
+
* single source of truth lives here.
|
|
24
|
+
*/
|
|
25
|
+
static tailwindPrefix(modifierName: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Auto-generate a human-readable description from a modifier name —
|
|
28
|
+
* strip the leading `_`, split on camelCase boundaries and digit
|
|
29
|
+
* groups, lowercase. `_onElevation1` → `on elevation 1`. Static so
|
|
30
|
+
* callers with just the name string (and no `Modifier` instance) can
|
|
31
|
+
* reach the same wording; the instance getter
|
|
32
|
+
* `derived.description` uses it as the fallback when the authored
|
|
33
|
+
* `description` is missing.
|
|
34
|
+
*/
|
|
35
|
+
static autoDescription(modifierName: string): string;
|
|
36
|
+
constructor(args: {
|
|
37
|
+
name: TokenModifierKey;
|
|
38
|
+
definition: ModifierDefinition;
|
|
39
|
+
compositeLookup: CompositeSelectorLookup;
|
|
40
|
+
modeLookup: ModeSelectorLookup;
|
|
41
|
+
});
|
|
42
|
+
get derived(): {
|
|
43
|
+
readonly cssSelector: CssSelector;
|
|
44
|
+
readonly tailwindPrefix: string;
|
|
45
|
+
readonly description: string;
|
|
46
|
+
};
|
|
47
|
+
toJSON(): ModifierDefinition & {
|
|
48
|
+
name: TokenModifierKey;
|
|
49
|
+
};
|
|
50
|
+
} //#endregion
|
|
51
|
+
//#endregion
|
|
52
|
+
export { Modifier };
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { cssSelector } from "./brands.js";
|
|
2
|
+
import { compact, kebabCase } from "./entity-utils.js";
|
|
3
|
+
import { isCompositeRef, isModeRef } from "./refs.js";
|
|
4
|
+
//#region ../config/dist/Modifier.js
|
|
5
|
+
/**
|
|
6
|
+
* `Modifier` — a state or structural variation (`_hover`, `_dark`).
|
|
7
|
+
*
|
|
8
|
+
* Stores the authored `selector` (string, `composite()` marker, or
|
|
9
|
+
* `mode()` marker) and resolves it to a CSS selector on demand via
|
|
10
|
+
* the parent Config's lookup callables.
|
|
11
|
+
*
|
|
12
|
+
* `derived.cssSelector` recomputes on access — the resolved value
|
|
13
|
+
* depends on the Config's composite/mode tables, which can grow after
|
|
14
|
+
* the Modifier is constructed.
|
|
15
|
+
*/
|
|
16
|
+
var Modifier = class Modifier {
|
|
17
|
+
name;
|
|
18
|
+
selector;
|
|
19
|
+
media;
|
|
20
|
+
description;
|
|
21
|
+
#compositeLookup;
|
|
22
|
+
#modeLookup;
|
|
23
|
+
#derived;
|
|
24
|
+
/**
|
|
25
|
+
* Tailwind variant prefix a modifier name maps to. Strip the leading
|
|
26
|
+
* underscore, kebab-case the remainder, append `:`. `_focusVisible` →
|
|
27
|
+
* `focus-visible:`, `_hover` → `hover:`. Static so callers that only
|
|
28
|
+
* have the modifier name string (codegen `prepareModifierProps`,
|
|
29
|
+
* className builders) can derive it without spinning up a Modifier.
|
|
30
|
+
*
|
|
31
|
+
* Loader and runtime must agree byte-for-byte on this output — the
|
|
32
|
+
* single source of truth lives here.
|
|
33
|
+
*/
|
|
34
|
+
static tailwindPrefix(modifierName) {
|
|
35
|
+
return `${kebabCase(modifierName.slice(1))}:`;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Auto-generate a human-readable description from a modifier name —
|
|
39
|
+
* strip the leading `_`, split on camelCase boundaries and digit
|
|
40
|
+
* groups, lowercase. `_onElevation1` → `on elevation 1`. Static so
|
|
41
|
+
* callers with just the name string (and no `Modifier` instance) can
|
|
42
|
+
* reach the same wording; the instance getter
|
|
43
|
+
* `derived.description` uses it as the fallback when the authored
|
|
44
|
+
* `description` is missing.
|
|
45
|
+
*/
|
|
46
|
+
static autoDescription(modifierName) {
|
|
47
|
+
return `Conditionally apply styles ${modifierName.replace(/^_/, "").replace(/([A-Z])/g, " $1").replace(/(\d+)/g, " $1").trim().toLowerCase()}`;
|
|
48
|
+
}
|
|
49
|
+
constructor(args) {
|
|
50
|
+
this.name = args.name;
|
|
51
|
+
this.selector = args.definition.selector;
|
|
52
|
+
this.media = args.definition.media;
|
|
53
|
+
this.description = args.definition.description;
|
|
54
|
+
this.#compositeLookup = args.compositeLookup;
|
|
55
|
+
this.#modeLookup = args.modeLookup;
|
|
56
|
+
}
|
|
57
|
+
get derived() {
|
|
58
|
+
if (!this.#derived) {
|
|
59
|
+
const selector = this.selector;
|
|
60
|
+
const name = this.name;
|
|
61
|
+
const authoredDescription = this.description;
|
|
62
|
+
const compositeLookup = this.#compositeLookup;
|
|
63
|
+
const modeLookup = this.#modeLookup;
|
|
64
|
+
this.#derived = {
|
|
65
|
+
get cssSelector() {
|
|
66
|
+
return cssSelector(resolveSelector(selector, compositeLookup, modeLookup));
|
|
67
|
+
},
|
|
68
|
+
get tailwindPrefix() {
|
|
69
|
+
return Modifier.tailwindPrefix(name);
|
|
70
|
+
},
|
|
71
|
+
get description() {
|
|
72
|
+
return authoredDescription ?? Modifier.autoDescription(name);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return this.#derived;
|
|
77
|
+
}
|
|
78
|
+
toJSON() {
|
|
79
|
+
return {
|
|
80
|
+
name: this.name,
|
|
81
|
+
...compact({
|
|
82
|
+
selector: this.selector,
|
|
83
|
+
media: this.media,
|
|
84
|
+
description: this.description
|
|
85
|
+
})
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
function resolveSelector(selector, compositeLookup, modeLookup) {
|
|
90
|
+
if (selector === void 0) return "";
|
|
91
|
+
if (typeof selector === "string") return selector;
|
|
92
|
+
if (isCompositeRef(selector)) return compositeLookup(selector.ref) ?? "";
|
|
93
|
+
if (isModeRef(selector)) return modeLookup(selector.ref) ?? "";
|
|
94
|
+
return "";
|
|
95
|
+
}
|
|
96
|
+
//#endregion
|
|
97
|
+
export { Modifier };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { CssMotionDefinition, JsMotionDefinition, MotionKeyframes, MotionStateKeyframe, MotionTransition } from "./types.js";
|
|
2
|
+
import { CssClassName } from "./brands.js";
|
|
3
|
+
|
|
4
|
+
//#region ../config/dist/MotionDef.d.ts
|
|
5
|
+
//#region src/MotionDef.d.ts
|
|
6
|
+
declare class CssMotionDef {
|
|
7
|
+
#private;
|
|
8
|
+
readonly runtime: "css";
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly keyframes: MotionKeyframes;
|
|
11
|
+
readonly transition?: MotionTransition;
|
|
12
|
+
readonly animationDuration?: string | number;
|
|
13
|
+
readonly animationTimingFunction?: string;
|
|
14
|
+
readonly animationDelay?: string | number;
|
|
15
|
+
readonly animationIterationCount?: string | number;
|
|
16
|
+
readonly animationDirection?: string;
|
|
17
|
+
readonly animationFillMode?: string;
|
|
18
|
+
readonly animationPlayState?: string;
|
|
19
|
+
readonly reducedMotion?: 'none';
|
|
20
|
+
constructor(args: {
|
|
21
|
+
name: string;
|
|
22
|
+
definition: CssMotionDefinition;
|
|
23
|
+
});
|
|
24
|
+
get derived(): {
|
|
25
|
+
readonly cssClassName: CssClassName;
|
|
26
|
+
};
|
|
27
|
+
toJSON(): CssMotionDefinition & {
|
|
28
|
+
name: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
declare class JsMotionDef {
|
|
32
|
+
readonly runtime: "js";
|
|
33
|
+
readonly name: string;
|
|
34
|
+
readonly initial?: MotionStateKeyframe;
|
|
35
|
+
readonly animate?: MotionStateKeyframe;
|
|
36
|
+
readonly exit?: MotionStateKeyframe;
|
|
37
|
+
readonly transition?: MotionTransition;
|
|
38
|
+
readonly whileHover?: MotionStateKeyframe;
|
|
39
|
+
readonly whileTap?: MotionStateKeyframe;
|
|
40
|
+
constructor(args: {
|
|
41
|
+
name: string;
|
|
42
|
+
definition: JsMotionDefinition;
|
|
43
|
+
});
|
|
44
|
+
toJSON(): JsMotionDefinition & {
|
|
45
|
+
name: string;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
type MotionDef = CssMotionDef | JsMotionDef; //#endregion
|
|
49
|
+
//#endregion
|
|
50
|
+
export { CssMotionDef, JsMotionDef, MotionDef };
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { cssClassName } from "./brands.js";
|
|
2
|
+
import { compact, kebabCase } from "./entity-utils.js";
|
|
3
|
+
//#region ../config/dist/MotionDef.js
|
|
4
|
+
/**
|
|
5
|
+
* `MotionDef` — animation presets, discriminated by `runtime`.
|
|
6
|
+
*
|
|
7
|
+
* `CssMotionDef` carries the CSS keyframes + transition for the CSS
|
|
8
|
+
* runtime and exposes a derived CSS class name. `JsMotionDef` carries
|
|
9
|
+
* raw keyframe state for a JS animation library (motion-one / framer)
|
|
10
|
+
* and has no `.derived` — the consumer reads authored state directly.
|
|
11
|
+
*/
|
|
12
|
+
var CssMotionDef = class {
|
|
13
|
+
runtime = "css";
|
|
14
|
+
name;
|
|
15
|
+
keyframes;
|
|
16
|
+
transition;
|
|
17
|
+
animationDuration;
|
|
18
|
+
animationTimingFunction;
|
|
19
|
+
animationDelay;
|
|
20
|
+
animationIterationCount;
|
|
21
|
+
animationDirection;
|
|
22
|
+
animationFillMode;
|
|
23
|
+
animationPlayState;
|
|
24
|
+
reducedMotion;
|
|
25
|
+
#derived;
|
|
26
|
+
constructor(args) {
|
|
27
|
+
const d = args.definition;
|
|
28
|
+
this.name = args.name;
|
|
29
|
+
this.keyframes = d.keyframes;
|
|
30
|
+
this.transition = d.transition;
|
|
31
|
+
this.animationDuration = d.animationDuration;
|
|
32
|
+
this.animationTimingFunction = d.animationTimingFunction;
|
|
33
|
+
this.animationDelay = d.animationDelay;
|
|
34
|
+
this.animationIterationCount = d.animationIterationCount;
|
|
35
|
+
this.animationDirection = d.animationDirection;
|
|
36
|
+
this.animationFillMode = d.animationFillMode;
|
|
37
|
+
this.animationPlayState = d.animationPlayState;
|
|
38
|
+
this.reducedMotion = d.reducedMotion === "none" ? "none" : void 0;
|
|
39
|
+
}
|
|
40
|
+
get derived() {
|
|
41
|
+
if (!this.#derived) this.#derived = { cssClassName: cssClassName(`motion-${kebabCase(this.name)}`) };
|
|
42
|
+
return this.#derived;
|
|
43
|
+
}
|
|
44
|
+
toJSON() {
|
|
45
|
+
return {
|
|
46
|
+
name: this.name,
|
|
47
|
+
runtime: "css",
|
|
48
|
+
keyframes: this.keyframes,
|
|
49
|
+
...compact({
|
|
50
|
+
transition: this.transition,
|
|
51
|
+
animationDuration: this.animationDuration,
|
|
52
|
+
animationTimingFunction: this.animationTimingFunction,
|
|
53
|
+
animationDelay: this.animationDelay,
|
|
54
|
+
animationIterationCount: this.animationIterationCount,
|
|
55
|
+
animationDirection: this.animationDirection,
|
|
56
|
+
animationFillMode: this.animationFillMode,
|
|
57
|
+
animationPlayState: this.animationPlayState,
|
|
58
|
+
reducedMotion: this.reducedMotion
|
|
59
|
+
})
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
var JsMotionDef = class {
|
|
64
|
+
runtime = "js";
|
|
65
|
+
name;
|
|
66
|
+
initial;
|
|
67
|
+
animate;
|
|
68
|
+
exit;
|
|
69
|
+
transition;
|
|
70
|
+
whileHover;
|
|
71
|
+
whileTap;
|
|
72
|
+
constructor(args) {
|
|
73
|
+
this.name = args.name;
|
|
74
|
+
this.initial = args.definition.initial;
|
|
75
|
+
this.animate = args.definition.animate;
|
|
76
|
+
this.exit = args.definition.exit;
|
|
77
|
+
this.transition = args.definition.transition;
|
|
78
|
+
this.whileHover = args.definition.whileHover;
|
|
79
|
+
this.whileTap = args.definition.whileTap;
|
|
80
|
+
}
|
|
81
|
+
toJSON() {
|
|
82
|
+
return {
|
|
83
|
+
name: this.name,
|
|
84
|
+
runtime: "js",
|
|
85
|
+
...compact({
|
|
86
|
+
initial: this.initial,
|
|
87
|
+
animate: this.animate,
|
|
88
|
+
exit: this.exit,
|
|
89
|
+
transition: this.transition,
|
|
90
|
+
whileHover: this.whileHover,
|
|
91
|
+
whileTap: this.whileTap
|
|
92
|
+
})
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
//#endregion
|
|
97
|
+
export { CssMotionDef, JsMotionDef };
|