@hyperframes/core 0.7.42 → 0.7.43
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/compiler/compositionScoping.d.ts +15 -0
- package/dist/compiler/compositionScoping.d.ts.map +1 -1
- package/dist/compiler/compositionScoping.js +19 -0
- package/dist/compiler/compositionScoping.js.map +1 -1
- package/dist/compiler/htmlBundler.d.ts +20 -1
- package/dist/compiler/htmlBundler.d.ts.map +1 -1
- package/dist/compiler/htmlBundler.js +145 -40
- package/dist/compiler/htmlBundler.js.map +1 -1
- package/dist/compiler/index.d.ts +3 -2
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js +3 -2
- package/dist/compiler/index.js.map +1 -1
- package/dist/figma/nodeToHtml.d.ts +8 -2
- package/dist/figma/nodeToHtml.d.ts.map +1 -1
- package/dist/figma/nodeToHtml.js +27 -24
- package/dist/figma/nodeToHtml.js.map +1 -1
- package/dist/generated/runtime-inline.js +1 -1
- package/dist/generated/runtime-inline.js.map +1 -1
- package/dist/hyperframe.runtime.iife.js +26 -26
- package/dist/runtime/flattenedRoot.d.ts +10 -0
- package/dist/runtime/flattenedRoot.d.ts.map +1 -0
- package/dist/runtime/flattenedRoot.js +31 -0
- package/dist/runtime/flattenedRoot.js.map +1 -0
- package/dist/runtime/getVariables.d.ts +29 -21
- package/dist/runtime/getVariables.d.ts.map +1 -1
- package/dist/runtime/getVariables.js +128 -3
- package/dist/runtime/getVariables.js.map +1 -1
- package/dist/runtime/types.d.ts +5 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/tokenSlug.d.ts +13 -0
- package/dist/tokenSlug.d.ts.map +1 -0
- package/dist/tokenSlug.js +42 -0
- package/dist/tokenSlug.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared between the build-time bundler (htmlBundler) and the runtime
|
|
3
|
+
* composition loader: when a sub-composition's inner root is flattened into
|
|
4
|
+
* its host, these timing/identity attributes must be stripped and the
|
|
5
|
+
* authored id preserved as data — identical semantics in both worlds.
|
|
6
|
+
*/
|
|
7
|
+
export declare const FLATTENED_INNER_ROOT_STRIP_ATTRS: string[];
|
|
8
|
+
/** Strip timing attrs, demote the authored id, and mark the flattened root. */
|
|
9
|
+
export declare function markFlattenedInnerRoot(prepared: Element): void;
|
|
10
|
+
//# sourceMappingURL=flattenedRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattenedRoot.d.ts","sourceRoot":"","sources":["../../src/runtime/flattenedRoot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gCAAgC,UAW5C,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAU9D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared between the build-time bundler (htmlBundler) and the runtime
|
|
3
|
+
* composition loader: when a sub-composition's inner root is flattened into
|
|
4
|
+
* its host, these timing/identity attributes must be stripped and the
|
|
5
|
+
* authored id preserved as data — identical semantics in both worlds.
|
|
6
|
+
*/
|
|
7
|
+
export const FLATTENED_INNER_ROOT_STRIP_ATTRS = [
|
|
8
|
+
"data-composition-id",
|
|
9
|
+
"data-composition-file",
|
|
10
|
+
"data-start",
|
|
11
|
+
"data-duration",
|
|
12
|
+
"data-end",
|
|
13
|
+
"data-track-index",
|
|
14
|
+
"data-track",
|
|
15
|
+
"data-composition-src",
|
|
16
|
+
"data-hf-authored-duration",
|
|
17
|
+
"data-hf-authored-end",
|
|
18
|
+
];
|
|
19
|
+
/** Strip timing attrs, demote the authored id, and mark the flattened root. */
|
|
20
|
+
export function markFlattenedInnerRoot(prepared) {
|
|
21
|
+
const authoredRootId = prepared.getAttribute("id")?.trim();
|
|
22
|
+
for (const attrName of FLATTENED_INNER_ROOT_STRIP_ATTRS) {
|
|
23
|
+
prepared.removeAttribute(attrName);
|
|
24
|
+
}
|
|
25
|
+
if (authoredRootId) {
|
|
26
|
+
prepared.removeAttribute("id");
|
|
27
|
+
prepared.setAttribute("data-hf-authored-id", authoredRootId);
|
|
28
|
+
}
|
|
29
|
+
prepared.setAttribute("data-hf-inner-root", "true");
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=flattenedRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattenedRoot.js","sourceRoot":"","sources":["../../src/runtime/flattenedRoot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,qBAAqB;IACrB,uBAAuB;IACvB,YAAY;IACZ,eAAe;IACf,UAAU;IACV,kBAAkB;IAClB,YAAY;IACZ,sBAAsB;IACtB,2BAA2B;IAC3B,sBAAsB;CACvB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CAAC,QAAiB;IACtD,MAAM,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3D,KAAK,MAAM,QAAQ,IAAI,gCAAgC,EAAE,CAAC;QACxD,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,QAAQ,CAAC,YAAY,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IACD,QAAQ,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reads the resolved variables for the current composition.
|
|
3
|
-
*
|
|
4
|
-
* Top-level path: declared defaults from `<html data-composition-variables="...">`
|
|
5
|
-
* merged with `window.__hfVariables` (set at render time by the engine when
|
|
6
|
-
* the user passes `hyperframes render --variables '<json>'`).
|
|
7
|
-
*
|
|
8
|
-
* Sub-comp path (per-instance scoping): when called inside a sub-composition
|
|
9
|
-
* script wrapped by `compositionScoping.ts`, the wrapper shadows
|
|
10
|
-
* `__hyperframes.getVariables` with a scoped variant that returns the
|
|
11
|
-
* pre-merged values from `window.__hfVariablesByComp[compositionId]`. The
|
|
12
|
-
* loader populates that table before running scripts, layering the host
|
|
13
|
-
* element's `data-variable-values` over the sub-comp's declared defaults.
|
|
14
|
-
*
|
|
15
|
-
* Returns `Partial<T>` because not every declared variable is guaranteed to
|
|
16
|
-
* have a default, and not every key in `__hfVariables` is guaranteed to be
|
|
17
|
-
* declared. Callers are expected to destructure with their own fallbacks
|
|
18
|
-
* where strictness matters:
|
|
19
|
-
*
|
|
20
|
-
* const { title = "Untitled", theme = "light" } = getVariables<MyVars>();
|
|
21
|
-
*/
|
|
22
1
|
export declare function getVariables<T extends Record<string, unknown> = Record<string, unknown>>(): Partial<T>;
|
|
23
2
|
/**
|
|
24
3
|
* Extract `{id: default}` map from an element's `data-composition-variables`
|
|
@@ -27,4 +6,33 @@ export declare function getVariables<T extends Record<string, unknown> = Record<
|
|
|
27
6
|
* compositionLoader can compute the same defaults map for sub-comp instances.
|
|
28
7
|
*/
|
|
29
8
|
export declare function readDeclaredDefaults(root: Element | null): Record<string, unknown>;
|
|
9
|
+
/**
|
|
10
|
+
* Define primitive-valued variables as CSS custom properties on `target`,
|
|
11
|
+
* recording the applied names so re-init/unmount can clear them. Empty
|
|
12
|
+
* strings are skipped — CSSOM setProperty("", …) REMOVES the property, and a
|
|
13
|
+
* blank default has no CSS meaning anyway.
|
|
14
|
+
*/
|
|
15
|
+
export declare function applyCssVariables(target: Element, variables: Record<string, unknown>): void;
|
|
16
|
+
/** Remove custom properties a previous applyCssVariables call defined. */
|
|
17
|
+
export declare function clearAppliedCssVariables(target: Element): void;
|
|
18
|
+
/**
|
|
19
|
+
* Imported figma components reference brand tokens as `var(--slug, literal)`.
|
|
20
|
+
* Define each declaring element's composition variables as CSS custom
|
|
21
|
+
* properties ON THAT ELEMENT — scoping by the cascade, so two compositions
|
|
22
|
+
* on one page can't clobber each other and a flattened sub-composition root
|
|
23
|
+
* correctly styles only its own subtree.
|
|
24
|
+
*
|
|
25
|
+
* Declared DEFAULTS are define-if-absent: a value the author already styled
|
|
26
|
+
* (stylesheet `:root` rule, compile-time emission, hand-written inline) wins
|
|
27
|
+
* over the declared default, preserving pre-existing conventions where a
|
|
28
|
+
* variable id coincides with an authored custom property. Render-time
|
|
29
|
+
* overrides (`--variables` → `window.__hfVariables`) always win — that's
|
|
30
|
+
* explicit user intent.
|
|
31
|
+
*/
|
|
32
|
+
export declare function injectCompositionCssVariables(doc: Document): void;
|
|
33
|
+
/** Parse a host element's `data-variable-values` JSON attribute (per-instance
|
|
34
|
+
* sub-composition overrides). Shared by the runtime loader and the bundler. */
|
|
35
|
+
export declare function parseHostVariableValues(host: Element): Record<string, unknown>;
|
|
36
|
+
/** Render-time variable overrides (`hyperframes render --variables`). */
|
|
37
|
+
export declare function readRenderOverrides(): Record<string, unknown>;
|
|
30
38
|
//# sourceMappingURL=getVariables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVariables.d.ts","sourceRoot":"","sources":["../../src/runtime/getVariables.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getVariables.d.ts","sourceRoot":"","sources":["../../src/runtime/getVariables.ts"],"names":[],"mappings":"AAuBA,wBAAgB,YAAY,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACxD,OAAO,CAAC,CAAC,CAAC,CAoBd;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBlF;AAQD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAW3F;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAQ9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAkBjE;AA6BD;+EAC+E;AAC/E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW9E;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK7D"}
|
|
@@ -19,11 +19,25 @@
|
|
|
19
19
|
*
|
|
20
20
|
* const { title = "Untitled", theme = "light" } = getVariables<MyVars>();
|
|
21
21
|
*/
|
|
22
|
+
import { cssVariableName, detectSlugCollisions } from "../tokenSlug.js";
|
|
22
23
|
export function getVariables() {
|
|
23
24
|
if (typeof document === "undefined")
|
|
24
25
|
return {};
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
// Same collection the CSS-variable injection uses: <html> first, then any
|
|
27
|
+
// composition element carrying the attribute (later declarers win), then
|
|
28
|
+
// render-time overrides.
|
|
29
|
+
const declarers = new Set();
|
|
30
|
+
if (document.documentElement?.hasAttribute("data-composition-variables")) {
|
|
31
|
+
declarers.add(document.documentElement);
|
|
32
|
+
}
|
|
33
|
+
for (const el of Array.from(document.querySelectorAll("[data-composition-variables]"))) {
|
|
34
|
+
declarers.add(el);
|
|
35
|
+
}
|
|
36
|
+
const declaredDefaults = {};
|
|
37
|
+
for (const el of declarers) {
|
|
38
|
+
Object.assign(declaredDefaults, readDeclaredDefaults(el));
|
|
39
|
+
}
|
|
40
|
+
const overrides = readRenderOverrides();
|
|
27
41
|
return { ...declaredDefaults, ...overrides };
|
|
28
42
|
}
|
|
29
43
|
/**
|
|
@@ -58,7 +72,118 @@ export function readDeclaredDefaults(root) {
|
|
|
58
72
|
}
|
|
59
73
|
return out;
|
|
60
74
|
}
|
|
61
|
-
|
|
75
|
+
const APPLIED_VARS_ATTR = "data-hf-css-vars";
|
|
76
|
+
function hasInlineStyle(target) {
|
|
77
|
+
return "style" in target && typeof target.style?.setProperty === "function";
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Define primitive-valued variables as CSS custom properties on `target`,
|
|
81
|
+
* recording the applied names so re-init/unmount can clear them. Empty
|
|
82
|
+
* strings are skipped — CSSOM setProperty("", …) REMOVES the property, and a
|
|
83
|
+
* blank default has no CSS meaning anyway.
|
|
84
|
+
*/
|
|
85
|
+
export function applyCssVariables(target, variables) {
|
|
86
|
+
if (!hasInlineStyle(target))
|
|
87
|
+
return;
|
|
88
|
+
const applied = [];
|
|
89
|
+
for (const [id, value] of Object.entries(variables)) {
|
|
90
|
+
if ((typeof value === "string" && value !== "") || typeof value === "number") {
|
|
91
|
+
const name = cssVariableName(id);
|
|
92
|
+
target.style.setProperty(name, String(value));
|
|
93
|
+
applied.push(name);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (applied.length > 0)
|
|
97
|
+
target.setAttribute(APPLIED_VARS_ATTR, applied.join(" "));
|
|
98
|
+
}
|
|
99
|
+
/** Remove custom properties a previous applyCssVariables call defined. */
|
|
100
|
+
export function clearAppliedCssVariables(target) {
|
|
101
|
+
if (!hasInlineStyle(target))
|
|
102
|
+
return;
|
|
103
|
+
const applied = target.getAttribute(APPLIED_VARS_ATTR);
|
|
104
|
+
if (!applied)
|
|
105
|
+
return;
|
|
106
|
+
for (const name of applied.split(" ")) {
|
|
107
|
+
if (name.startsWith("--"))
|
|
108
|
+
target.style.removeProperty(name);
|
|
109
|
+
}
|
|
110
|
+
target.removeAttribute(APPLIED_VARS_ATTR);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Imported figma components reference brand tokens as `var(--slug, literal)`.
|
|
114
|
+
* Define each declaring element's composition variables as CSS custom
|
|
115
|
+
* properties ON THAT ELEMENT — scoping by the cascade, so two compositions
|
|
116
|
+
* on one page can't clobber each other and a flattened sub-composition root
|
|
117
|
+
* correctly styles only its own subtree.
|
|
118
|
+
*
|
|
119
|
+
* Declared DEFAULTS are define-if-absent: a value the author already styled
|
|
120
|
+
* (stylesheet `:root` rule, compile-time emission, hand-written inline) wins
|
|
121
|
+
* over the declared default, preserving pre-existing conventions where a
|
|
122
|
+
* variable id coincides with an authored custom property. Render-time
|
|
123
|
+
* overrides (`--variables` → `window.__hfVariables`) always win — that's
|
|
124
|
+
* explicit user intent.
|
|
125
|
+
*/
|
|
126
|
+
export function injectCompositionCssVariables(doc) {
|
|
127
|
+
const declarers = new Set();
|
|
128
|
+
if (doc.documentElement?.hasAttribute("data-composition-variables")) {
|
|
129
|
+
declarers.add(doc.documentElement);
|
|
130
|
+
}
|
|
131
|
+
for (const el of Array.from(doc.querySelectorAll("[data-composition-variables]"))) {
|
|
132
|
+
declarers.add(el);
|
|
133
|
+
}
|
|
134
|
+
const overrides = readRenderOverrides();
|
|
135
|
+
const allIds = [];
|
|
136
|
+
for (const el of declarers) {
|
|
137
|
+
allIds.push(...applyDeclaredForElement(el, overrides, doc.defaultView));
|
|
138
|
+
}
|
|
139
|
+
for (const group of detectSlugCollisions(allIds)) {
|
|
140
|
+
console.warn(`composition variables ${group.join(", ")} collapse to the same CSS property ${cssVariableName(group[0] ?? "")} — rename one to avoid cross-talk`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/** Apply one declarer's variables (define-if-absent for defaults, overrides
|
|
144
|
+
* always win). Returns the declared ids for collision reporting. */
|
|
145
|
+
function applyDeclaredForElement(el, overrides, view) {
|
|
146
|
+
if (!hasInlineStyle(el))
|
|
147
|
+
return [];
|
|
148
|
+
const declared = readDeclaredDefaults(el);
|
|
149
|
+
const toApply = {};
|
|
150
|
+
for (const [id, value] of Object.entries(declared)) {
|
|
151
|
+
if (id in overrides)
|
|
152
|
+
continue; // overrides applied below, always win
|
|
153
|
+
const name = cssVariableName(id);
|
|
154
|
+
// define-if-absent: respect authored/compiled definitions
|
|
155
|
+
const existing = el.style.getPropertyValue(name) ||
|
|
156
|
+
(view ? view.getComputedStyle(el).getPropertyValue(name) : "");
|
|
157
|
+
if (existing.trim() !== "")
|
|
158
|
+
continue;
|
|
159
|
+
toApply[id] = value;
|
|
160
|
+
}
|
|
161
|
+
for (const [id, value] of Object.entries(overrides)) {
|
|
162
|
+
if (id in declared)
|
|
163
|
+
toApply[id] = value;
|
|
164
|
+
}
|
|
165
|
+
applyCssVariables(el, toApply);
|
|
166
|
+
return Object.keys(declared);
|
|
167
|
+
}
|
|
168
|
+
/** Parse a host element's `data-variable-values` JSON attribute (per-instance
|
|
169
|
+
* sub-composition overrides). Shared by the runtime loader and the bundler. */
|
|
170
|
+
export function parseHostVariableValues(host) {
|
|
171
|
+
const raw = host.getAttribute("data-variable-values");
|
|
172
|
+
if (!raw)
|
|
173
|
+
return {};
|
|
174
|
+
let parsed;
|
|
175
|
+
try {
|
|
176
|
+
parsed = JSON.parse(raw);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return {};
|
|
180
|
+
}
|
|
181
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
182
|
+
return {};
|
|
183
|
+
return parsed;
|
|
184
|
+
}
|
|
185
|
+
/** Render-time variable overrides (`hyperframes render --variables`). */
|
|
186
|
+
export function readRenderOverrides() {
|
|
62
187
|
if (typeof window === "undefined")
|
|
63
188
|
return {};
|
|
64
189
|
const raw = window.__hfVariables;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVariables.js","sourceRoot":"","sources":["../../src/runtime/getVariables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,YAAY;IAG1B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,EAAgB,CAAC;IAE7D,MAAM,
|
|
1
|
+
{"version":3,"file":"getVariables.js","sourceRoot":"","sources":["../../src/runtime/getVariables.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -164,13 +164,16 @@ export type RuntimePlayer = {
|
|
|
164
164
|
seek: (timeSeconds: number, options?: {
|
|
165
165
|
keepPlaying?: boolean;
|
|
166
166
|
}) => void;
|
|
167
|
-
renderSeek: (timeSeconds: number) => void;
|
|
167
|
+
renderSeek: (timeSeconds: number, options?: RuntimeSeekOptions) => void;
|
|
168
168
|
getTime: () => number;
|
|
169
169
|
getDuration: () => number;
|
|
170
170
|
isPlaying: () => boolean;
|
|
171
171
|
setPlaybackRate: (rate: number) => void;
|
|
172
172
|
getPlaybackRate: () => number;
|
|
173
173
|
};
|
|
174
|
+
export type RuntimeSeekOptions = {
|
|
175
|
+
suppressEvents?: boolean;
|
|
176
|
+
};
|
|
174
177
|
export type RuntimeTimelineLike = {
|
|
175
178
|
play: () => void;
|
|
176
179
|
pause: () => void;
|
|
@@ -188,6 +191,7 @@ export type RuntimeDeterministicAdapter = {
|
|
|
188
191
|
discover: () => void;
|
|
189
192
|
seek: (ctx: {
|
|
190
193
|
time: number;
|
|
194
|
+
suppressEvents?: boolean;
|
|
191
195
|
}) => void;
|
|
192
196
|
pause: () => void;
|
|
193
197
|
play?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,WAAW,EAAE,GACb;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,CAAC;AAEnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAElF,MAAM,MAAM,0BAA0B,GAClC,uBAAuB,GACvB,MAAM,GACN,YAAY,GACZ,wBAAwB,GACxB,gCAAgC,GAChC,8BAA8B,GAC9B,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,0BAA0B,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAEnE,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,yBAAyB,CAAC;IAChC,UAAU,EAAE,wBAAwB,EAAE,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,YAAY,EAAE,wBAAwB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,wBAAwB,CAAC;CAChC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EACD,oBAAoB,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,gBAAgB,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;CAC9D,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,mBAAmB,GACnB,sBAAsB,GACtB,wBAAwB,GACxB,2BAA2B,GAC3B,8BAA8B,GAC9B,0BAA0B,GAC1B,8BAA8B,GAC9B,6BAA6B,GAC7B,uBAAuB,GACvB,kCAAkC,GAClC,mBAAmB,GACnB,uBAAuB,GACvB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACzE,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE slug for composition-variable ids → CSS custom-property names. Shared
|
|
3
|
+
* by the figma importer (emits `var(--<slug>, literal)`) and the runtime
|
|
4
|
+
* (defines `--<slug>` from declared variables) — one function so the two
|
|
5
|
+
* sides can never drift. The slug is lossy (case-folded, symbol runs
|
|
6
|
+
* collapse to "-"), so distinct ids CAN collide; callers surface
|
|
7
|
+
* detectSlugCollisions() as a warning rather than silently merging.
|
|
8
|
+
*/
|
|
9
|
+
export declare function slugify(name: string): string;
|
|
10
|
+
export declare function cssVariableName(id: string): string;
|
|
11
|
+
/** Groups of distinct ids that collapse to the same CSS variable name. */
|
|
12
|
+
export declare function detectSlugCollisions(ids: Iterable<string>): string[][];
|
|
13
|
+
//# sourceMappingURL=tokenSlug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenSlug.d.ts","sourceRoot":"","sources":["../src/tokenSlug.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW5C;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,CAYtE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE slug for composition-variable ids → CSS custom-property names. Shared
|
|
3
|
+
* by the figma importer (emits `var(--<slug>, literal)`) and the runtime
|
|
4
|
+
* (defines `--<slug>` from declared variables) — one function so the two
|
|
5
|
+
* sides can never drift. The slug is lossy (case-folded, symbol runs
|
|
6
|
+
* collapse to "-"), so distinct ids CAN collide; callers surface
|
|
7
|
+
* detectSlugCollisions() as a warning rather than silently merging.
|
|
8
|
+
*/
|
|
9
|
+
export function slugify(name) {
|
|
10
|
+
const collapsed = name.toLowerCase().replace(/[^a-z0-9]+/g, "-");
|
|
11
|
+
// Character-scan trim of leading/trailing "-" instead of /^-+|-+$/:
|
|
12
|
+
// CodeQL flags the alternated anchored regex as polynomial ReDoS on
|
|
13
|
+
// adversarial inputs (js/polynomial-redos).
|
|
14
|
+
let start = 0;
|
|
15
|
+
let end = collapsed.length;
|
|
16
|
+
while (start < end && collapsed[start] === "-")
|
|
17
|
+
start++;
|
|
18
|
+
while (end > start && collapsed[end - 1] === "-")
|
|
19
|
+
end--;
|
|
20
|
+
const slug = collapsed.slice(start, end);
|
|
21
|
+
return slug.length > 0 ? slug : "node";
|
|
22
|
+
}
|
|
23
|
+
export function cssVariableName(id) {
|
|
24
|
+
return `--${slugify(id)}`;
|
|
25
|
+
}
|
|
26
|
+
/** Groups of distinct ids that collapse to the same CSS variable name. */
|
|
27
|
+
export function detectSlugCollisions(ids) {
|
|
28
|
+
const bySlug = new Map();
|
|
29
|
+
for (const id of ids) {
|
|
30
|
+
const slug = cssVariableName(id);
|
|
31
|
+
const group = bySlug.get(slug);
|
|
32
|
+
if (group) {
|
|
33
|
+
if (!group.includes(id))
|
|
34
|
+
group.push(id);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
bySlug.set(slug, [id]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return [...bySlug.values()].filter((g) => g.length > 1);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=tokenSlug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenSlug.js","sourceRoot":"","sources":["../src/tokenSlug.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACjE,oEAAoE;IACpE,oEAAoE;IACpE,4CAA4C;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3B,OAAO,KAAK,GAAG,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG;QAAE,KAAK,EAAE,CAAC;IACxD,OAAO,GAAG,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,GAAG,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5B,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB,CAAC,GAAqB;IACxD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/core",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.43",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -162,9 +162,9 @@
|
|
|
162
162
|
"bpm-detective": "^2.0.5",
|
|
163
163
|
"linkedom": "^0.18.12",
|
|
164
164
|
"postcss": "^8.5.8",
|
|
165
|
-
"@hyperframes/lint": "0.7.
|
|
166
|
-
"@hyperframes/parsers": "0.7.
|
|
167
|
-
"@hyperframes/studio-server": "0.7.
|
|
165
|
+
"@hyperframes/lint": "0.7.43",
|
|
166
|
+
"@hyperframes/parsers": "0.7.43",
|
|
167
|
+
"@hyperframes/studio-server": "0.7.43"
|
|
168
168
|
},
|
|
169
169
|
"devDependencies": {
|
|
170
170
|
"@types/jsdom": "^28.0.0",
|