@teleporthq/teleport-shared 0.43.70 → 0.43.74
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/__tests__/function-sources.ts +30 -0
- package/__tests__/motion-runtime/motion-engine.ts +102 -0
- package/__tests__/motion-runtime/scroll-video-engine.ts +28 -0
- package/__tests__/scroll-scene/story-lanes.ts +126 -0
- package/dist/cjs/index.d.ts +5 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +9 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/motion-runtime/index.d.ts +3 -0
- package/dist/cjs/motion-runtime/index.d.ts.map +1 -0
- package/dist/cjs/motion-runtime/index.js +8 -0
- package/dist/cjs/motion-runtime/index.js.map +1 -0
- package/dist/cjs/motion-runtime/motion-engine-source.d.ts +16 -0
- package/dist/cjs/motion-runtime/motion-engine-source.d.ts.map +1 -0
- package/dist/cjs/motion-runtime/motion-engine-source.js +20 -0
- package/dist/cjs/motion-runtime/motion-engine-source.js.map +1 -0
- package/dist/cjs/motion-runtime/scroll-video-engine-source.d.ts +9 -0
- package/dist/cjs/motion-runtime/scroll-video-engine-source.d.ts.map +1 -0
- package/dist/cjs/motion-runtime/scroll-video-engine-source.js +13 -0
- package/dist/cjs/motion-runtime/scroll-video-engine-source.js.map +1 -0
- package/dist/cjs/page-transition/index.d.ts +5 -0
- package/dist/cjs/page-transition/index.d.ts.map +1 -0
- package/dist/cjs/page-transition/index.js +21 -0
- package/dist/cjs/page-transition/index.js.map +1 -0
- package/dist/cjs/page-transition/morph-source.d.ts +20 -0
- package/dist/cjs/page-transition/morph-source.d.ts.map +1 -0
- package/dist/cjs/page-transition/morph-source.js +25 -0
- package/dist/cjs/page-transition/morph-source.js.map +1 -0
- package/dist/cjs/page-transition/variant-sources.generated.d.ts +7 -0
- package/dist/cjs/page-transition/variant-sources.generated.d.ts.map +1 -0
- package/dist/cjs/page-transition/variant-sources.generated.js +14 -0
- package/dist/cjs/page-transition/variant-sources.generated.js.map +1 -0
- package/dist/cjs/page-transition/variants.d.ts +87 -0
- package/dist/cjs/page-transition/variants.d.ts.map +1 -0
- package/dist/cjs/page-transition/variants.js +330 -0
- package/dist/cjs/page-transition/variants.js.map +1 -0
- package/dist/cjs/page-transition/view-transition-css.d.ts +21 -0
- package/dist/cjs/page-transition/view-transition-css.d.ts.map +1 -0
- package/dist/cjs/page-transition/view-transition-css.js +188 -0
- package/dist/cjs/page-transition/view-transition-css.js.map +1 -0
- package/dist/cjs/scroll-scene/chapter-index.d.ts +15 -0
- package/dist/cjs/scroll-scene/chapter-index.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/chapter-index.js +30 -0
- package/dist/cjs/scroll-scene/chapter-index.js.map +1 -0
- package/dist/cjs/scroll-scene/controller-source.d.ts +26 -0
- package/dist/cjs/scroll-scene/controller-source.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/controller-source.js +34 -0
- package/dist/cjs/scroll-scene/controller-source.js.map +1 -0
- package/dist/cjs/scroll-scene/engine-source.d.ts +2 -0
- package/dist/cjs/scroll-scene/engine-source.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/engine-source.js +23 -0
- package/dist/cjs/scroll-scene/engine-source.js.map +1 -0
- package/dist/cjs/scroll-scene/helper-sources.generated.d.ts +9 -0
- package/dist/cjs/scroll-scene/helper-sources.generated.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/helper-sources.generated.js +16 -0
- package/dist/cjs/scroll-scene/helper-sources.generated.js.map +1 -0
- package/dist/cjs/scroll-scene/index.d.ts +8 -0
- package/dist/cjs/scroll-scene/index.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/index.js +24 -0
- package/dist/cjs/scroll-scene/index.js.map +1 -0
- package/dist/cjs/scroll-scene/moment.d.ts +21 -0
- package/dist/cjs/scroll-scene/moment.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/moment.js +50 -0
- package/dist/cjs/scroll-scene/moment.js.map +1 -0
- package/dist/cjs/scroll-scene/points.d.ts +23 -0
- package/dist/cjs/scroll-scene/points.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/points.js +51 -0
- package/dist/cjs/scroll-scene/points.js.map +1 -0
- package/dist/cjs/scroll-scene/unclip.d.ts +15 -0
- package/dist/cjs/scroll-scene/unclip.d.ts.map +1 -0
- package/dist/cjs/scroll-scene/unclip.js +44 -0
- package/dist/cjs/scroll-scene/unclip.js.map +1 -0
- package/dist/cjs/state-bindings/index.d.ts +74 -0
- package/dist/cjs/state-bindings/index.d.ts.map +1 -0
- package/dist/cjs/state-bindings/index.js +193 -0
- package/dist/cjs/state-bindings/index.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/index.d.ts +5 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/motion-runtime/index.d.ts +3 -0
- package/dist/esm/motion-runtime/index.d.ts.map +1 -0
- package/dist/esm/motion-runtime/index.js +3 -0
- package/dist/esm/motion-runtime/index.js.map +1 -0
- package/dist/esm/motion-runtime/motion-engine-source.d.ts +16 -0
- package/dist/esm/motion-runtime/motion-engine-source.d.ts.map +1 -0
- package/dist/esm/motion-runtime/motion-engine-source.js +16 -0
- package/dist/esm/motion-runtime/motion-engine-source.js.map +1 -0
- package/dist/esm/motion-runtime/scroll-video-engine-source.d.ts +9 -0
- package/dist/esm/motion-runtime/scroll-video-engine-source.d.ts.map +1 -0
- package/dist/esm/motion-runtime/scroll-video-engine-source.js +9 -0
- package/dist/esm/motion-runtime/scroll-video-engine-source.js.map +1 -0
- package/dist/esm/page-transition/index.d.ts +5 -0
- package/dist/esm/page-transition/index.d.ts.map +1 -0
- package/dist/esm/page-transition/index.js +5 -0
- package/dist/esm/page-transition/index.js.map +1 -0
- package/dist/esm/page-transition/morph-source.d.ts +20 -0
- package/dist/esm/page-transition/morph-source.d.ts.map +1 -0
- package/dist/esm/page-transition/morph-source.js +21 -0
- package/dist/esm/page-transition/morph-source.js.map +1 -0
- package/dist/esm/page-transition/variant-sources.generated.d.ts +7 -0
- package/dist/esm/page-transition/variant-sources.generated.d.ts.map +1 -0
- package/dist/esm/page-transition/variant-sources.generated.js +11 -0
- package/dist/esm/page-transition/variant-sources.generated.js.map +1 -0
- package/dist/esm/page-transition/variants.d.ts +87 -0
- package/dist/esm/page-transition/variants.d.ts.map +1 -0
- package/dist/esm/page-transition/variants.js +318 -0
- package/dist/esm/page-transition/variants.js.map +1 -0
- package/dist/esm/page-transition/view-transition-css.d.ts +21 -0
- package/dist/esm/page-transition/view-transition-css.d.ts.map +1 -0
- package/dist/esm/page-transition/view-transition-css.js +161 -0
- package/dist/esm/page-transition/view-transition-css.js.map +1 -0
- package/dist/esm/scroll-scene/chapter-index.d.ts +15 -0
- package/dist/esm/scroll-scene/chapter-index.d.ts.map +1 -0
- package/dist/esm/scroll-scene/chapter-index.js +26 -0
- package/dist/esm/scroll-scene/chapter-index.js.map +1 -0
- package/dist/esm/scroll-scene/controller-source.d.ts +26 -0
- package/dist/esm/scroll-scene/controller-source.d.ts.map +1 -0
- package/dist/esm/scroll-scene/controller-source.js +26 -0
- package/dist/esm/scroll-scene/controller-source.js.map +1 -0
- package/dist/esm/scroll-scene/engine-source.d.ts +2 -0
- package/dist/esm/scroll-scene/engine-source.d.ts.map +1 -0
- package/dist/esm/scroll-scene/engine-source.js +19 -0
- package/dist/esm/scroll-scene/engine-source.js.map +1 -0
- package/dist/esm/scroll-scene/helper-sources.generated.d.ts +9 -0
- package/dist/esm/scroll-scene/helper-sources.generated.d.ts.map +1 -0
- package/dist/esm/scroll-scene/helper-sources.generated.js +13 -0
- package/dist/esm/scroll-scene/helper-sources.generated.js.map +1 -0
- package/dist/esm/scroll-scene/index.d.ts +8 -0
- package/dist/esm/scroll-scene/index.d.ts.map +1 -0
- package/dist/esm/scroll-scene/index.js +8 -0
- package/dist/esm/scroll-scene/index.js.map +1 -0
- package/dist/esm/scroll-scene/moment.d.ts +21 -0
- package/dist/esm/scroll-scene/moment.d.ts.map +1 -0
- package/dist/esm/scroll-scene/moment.js +46 -0
- package/dist/esm/scroll-scene/moment.js.map +1 -0
- package/dist/esm/scroll-scene/points.d.ts +23 -0
- package/dist/esm/scroll-scene/points.d.ts.map +1 -0
- package/dist/esm/scroll-scene/points.js +45 -0
- package/dist/esm/scroll-scene/points.js.map +1 -0
- package/dist/esm/scroll-scene/unclip.d.ts +15 -0
- package/dist/esm/scroll-scene/unclip.d.ts.map +1 -0
- package/dist/esm/scroll-scene/unclip.js +40 -0
- package/dist/esm/scroll-scene/unclip.js.map +1 -0
- package/dist/esm/state-bindings/index.d.ts +74 -0
- package/dist/esm/state-bindings/index.d.ts.map +1 -0
- package/dist/esm/state-bindings/index.js +176 -0
- package/dist/esm/state-bindings/index.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/index.ts +8 -0
- package/src/motion-runtime/index.ts +2 -0
- package/src/motion-runtime/motion-engine-source.ts +289 -0
- package/src/motion-runtime/scroll-video-engine-source.ts +591 -0
- package/src/page-transition/index.ts +4 -0
- package/src/page-transition/morph-source.ts +86 -0
- package/src/page-transition/variant-sources.generated.ts +14 -0
- package/src/page-transition/variants.ts +407 -0
- package/src/page-transition/view-transition-css.ts +237 -0
- package/src/scroll-scene/chapter-index.ts +25 -0
- package/src/scroll-scene/controller-source.ts +451 -0
- package/src/scroll-scene/engine-source.ts +327 -0
- package/src/scroll-scene/helper-sources.generated.ts +18 -0
- package/src/scroll-scene/index.ts +13 -0
- package/src/scroll-scene/moment.ts +64 -0
- package/src/scroll-scene/points.ts +46 -0
- package/src/scroll-scene/unclip.ts +44 -0
- package/src/state-bindings/index.ts +207 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "scrolled past a point" contract of a published Scroll Scene: the four
|
|
3
|
+
* plain points in scroll order, which of them a move from one progress to
|
|
4
|
+
* another passes DOWNWARD, and the rank of a point for late listeners. The
|
|
5
|
+
* scene announces every passed point as a `tq-scene-point-passed` DOM event
|
|
6
|
+
* on its track (the element carrying the scene's id) and stamps the furthest
|
|
7
|
+
* point passed so far as `data-scene-point`.
|
|
8
|
+
*
|
|
9
|
+
* Plain JS inside: these functions' SOURCE is injected into the generated
|
|
10
|
+
* runtime via toString(), so no TypeScript-only runtime constructs, no
|
|
11
|
+
* template literals and no reference to anything outside the function. The
|
|
12
|
+
* list mirrors SCROLL_POINT_PROGRESS in teleport-plugin-next-workflows
|
|
13
|
+
* (pinned by a test).
|
|
14
|
+
*/
|
|
15
|
+
export declare function scenePointList(): Array<{
|
|
16
|
+
key: string;
|
|
17
|
+
at: number;
|
|
18
|
+
}>;
|
|
19
|
+
/** Points passed going DOWN from one progress to another, in scroll order; none when going up. */
|
|
20
|
+
export declare function passedScenePoints(from: number, to: number): string[];
|
|
21
|
+
/** 1-based rank of a point in scroll order, 0 for anything else. */
|
|
22
|
+
export declare function scenePointRank(key: string): number;
|
|
23
|
+
//# sourceMappingURL=points.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"points.d.ts","sourceRoot":"","sources":["../../../src/scroll-scene/points.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,IAAI,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAOnE;AAED,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAUpE;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQlD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scenePointRank = exports.passedScenePoints = exports.scenePointList = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The "scrolled past a point" contract of a published Scroll Scene: the four
|
|
6
|
+
* plain points in scroll order, which of them a move from one progress to
|
|
7
|
+
* another passes DOWNWARD, and the rank of a point for late listeners. The
|
|
8
|
+
* scene announces every passed point as a `tq-scene-point-passed` DOM event
|
|
9
|
+
* on its track (the element carrying the scene's id) and stamps the furthest
|
|
10
|
+
* point passed so far as `data-scene-point`.
|
|
11
|
+
*
|
|
12
|
+
* Plain JS inside: these functions' SOURCE is injected into the generated
|
|
13
|
+
* runtime via toString(), so no TypeScript-only runtime constructs, no
|
|
14
|
+
* template literals and no reference to anything outside the function. The
|
|
15
|
+
* list mirrors SCROLL_POINT_PROGRESS in teleport-plugin-next-workflows
|
|
16
|
+
* (pinned by a test).
|
|
17
|
+
*/
|
|
18
|
+
function scenePointList() {
|
|
19
|
+
return [
|
|
20
|
+
{ key: 'quarter', at: 0.25 },
|
|
21
|
+
{ key: 'half', at: 0.5 },
|
|
22
|
+
{ key: 'three-quarters', at: 0.75 },
|
|
23
|
+
{ key: 'end', at: 1 },
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
exports.scenePointList = scenePointList;
|
|
27
|
+
/** Points passed going DOWN from one progress to another, in scroll order; none when going up. */
|
|
28
|
+
function passedScenePoints(from, to) {
|
|
29
|
+
var passed = [];
|
|
30
|
+
var points = scenePointList();
|
|
31
|
+
for (var index = 0; index < points.length; index++) {
|
|
32
|
+
var point = points[index];
|
|
33
|
+
if (point.at > from + 0.000001 && point.at <= to + 0.000001) {
|
|
34
|
+
passed.push(point.key);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return passed;
|
|
38
|
+
}
|
|
39
|
+
exports.passedScenePoints = passedScenePoints;
|
|
40
|
+
/** 1-based rank of a point in scroll order, 0 for anything else. */
|
|
41
|
+
function scenePointRank(key) {
|
|
42
|
+
var points = scenePointList();
|
|
43
|
+
for (var index = 0; index < points.length; index++) {
|
|
44
|
+
if (points[index].key === key) {
|
|
45
|
+
return index + 1;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
exports.scenePointRank = scenePointRank;
|
|
51
|
+
//# sourceMappingURL=points.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"points.js","sourceRoot":"","sources":["../../../src/scroll-scene/points.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc;IAC5B,OAAO;QACL,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE;QAC5B,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE;QACxB,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE;QACnC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE;KACtB,CAAA;AACH,CAAC;AAPD,wCAOC;AAED,kGAAkG;AAClG,SAAgB,iBAAiB,CAAC,IAAY,EAAE,EAAU;IACxD,IAAM,MAAM,GAAG,EAAE,CAAA;IACjB,IAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClD,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,QAAQ,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE;YAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SACvB;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAVD,8CAUC;AAED,oEAAoE;AACpE,SAAgB,cAAc,CAAC,GAAW;IACxC,IAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;YAC7B,OAAO,KAAK,GAAG,CAAC,CAAA;SACjB;KACF;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AARD,wCAQC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep a pinned scene's stage pinnable: an ancestor with `overflow: hidden`
|
|
3
|
+
* (either axis) turns position:sticky off, silently. Authors and the AI write
|
|
4
|
+
* it for good reasons (a horizontal rail must clip its overhang — run
|
|
5
|
+
* e7f332df wrote `section.rail-scene { overflow: hidden }` around the
|
|
6
|
+
* homepage's story and the stage scrolled straight through). `overflow: clip`
|
|
7
|
+
* keeps the clipping and, unlike hidden, does not make the element a scroll
|
|
8
|
+
* container, so the stage sticks again. Ancestors that really scroll (auto /
|
|
9
|
+
* scroll) are left alone: sticky then rightly binds to that container.
|
|
10
|
+
*
|
|
11
|
+
* Injected into the generated widget via toString — no imports, no template
|
|
12
|
+
* literals (the generated project transpiles it).
|
|
13
|
+
*/
|
|
14
|
+
export declare function unclipStickyAncestors(track: Element, getStyle: (element: Element) => CSSStyleDeclaration): string[];
|
|
15
|
+
//# sourceMappingURL=unclip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unclip.d.ts","sourceRoot":"","sources":["../../../src/scroll-scene/unclip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,mBAAmB,GAClD,MAAM,EAAE,CA2BV"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unclipStickyAncestors = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Keep a pinned scene's stage pinnable: an ancestor with `overflow: hidden`
|
|
6
|
+
* (either axis) turns position:sticky off, silently. Authors and the AI write
|
|
7
|
+
* it for good reasons (a horizontal rail must clip its overhang — run
|
|
8
|
+
* e7f332df wrote `section.rail-scene { overflow: hidden }` around the
|
|
9
|
+
* homepage's story and the stage scrolled straight through). `overflow: clip`
|
|
10
|
+
* keeps the clipping and, unlike hidden, does not make the element a scroll
|
|
11
|
+
* container, so the stage sticks again. Ancestors that really scroll (auto /
|
|
12
|
+
* scroll) are left alone: sticky then rightly binds to that container.
|
|
13
|
+
*
|
|
14
|
+
* Injected into the generated widget via toString — no imports, no template
|
|
15
|
+
* literals (the generated project transpiles it).
|
|
16
|
+
*/
|
|
17
|
+
function unclipStickyAncestors(track, getStyle) {
|
|
18
|
+
var unclipped = [];
|
|
19
|
+
var element = track.parentElement;
|
|
20
|
+
while (element && element !== element.ownerDocument.documentElement) {
|
|
21
|
+
var style = getStyle(element);
|
|
22
|
+
var both = style.overflow === 'hidden';
|
|
23
|
+
var axes = [];
|
|
24
|
+
if (both || style.overflowX === 'hidden') {
|
|
25
|
+
axes.push('x');
|
|
26
|
+
}
|
|
27
|
+
if (both || style.overflowY === 'hidden') {
|
|
28
|
+
axes.push('y');
|
|
29
|
+
}
|
|
30
|
+
if (axes.length > 0) {
|
|
31
|
+
var host = element;
|
|
32
|
+
for (var i = 0; i < axes.length; i++) {
|
|
33
|
+
host.style.setProperty('overflow-' + axes[i], 'clip');
|
|
34
|
+
}
|
|
35
|
+
host.setAttribute('data-scene-unclipped', axes.join(''));
|
|
36
|
+
unclipped.push(host.tagName.toLowerCase() +
|
|
37
|
+
(host.className ? '.' + String(host.className).split(' ')[0] : ''));
|
|
38
|
+
}
|
|
39
|
+
element = element.parentElement;
|
|
40
|
+
}
|
|
41
|
+
return unclipped;
|
|
42
|
+
}
|
|
43
|
+
exports.unclipStickyAncestors = unclipStickyAncestors;
|
|
44
|
+
//# sourceMappingURL=unclip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unclip.js","sourceRoot":"","sources":["../../../src/scroll-scene/unclip.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;GAYG;AACH,SAAgB,qBAAqB,CACnC,KAAc,EACd,QAAmD;IAEnD,IAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,IAAI,OAAO,GAAG,KAAK,CAAC,aAAa,CAAA;IACjC,OAAO,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE;QACnE,IAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAA;QACxC,IAAM,IAAI,GAAa,EAAE,CAAA;QACzB,IAAI,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACf;QACD,IAAI,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACf;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAM,IAAI,GAAG,OAAsB,CAAA;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;aACtD;YACD,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YACxD,SAAS,CAAC,IAAI,CACZ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBACxB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACrE,CAAA;SACF;QACD,OAAO,GAAG,OAAO,CAAC,aAAa,CAAA;KAChC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AA9BD,sDA8BC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State bindings of the static HTML export: the attributes a downloaded page
|
|
3
|
+
* carries so that clicks open menus, switch tabs and restyle elements, and the
|
|
4
|
+
* small expression language they are written in. The HTML generator writes
|
|
5
|
+
* them (teleport-plugin-html-base-component), the one runtime file a download
|
|
6
|
+
* ships (`tq-state.js`, teleport-project-generator-html) reads them back.
|
|
7
|
+
*
|
|
8
|
+
* data-tq-scope="Navigation" a page root or a component instance:
|
|
9
|
+
* data-tq-state="menuOpen = false" its own store, with its starting values
|
|
10
|
+
* data-tq-if="menuOpen" shown while true; `hidden` when it starts false
|
|
11
|
+
* data-tq-class="active: tab === 0" the class is on while true
|
|
12
|
+
* data-tq-on-click="menuOpen = !menuOpen"
|
|
13
|
+
* data-tq-slot content a parent put into a component:
|
|
14
|
+
* it reads the parent's store
|
|
15
|
+
*
|
|
16
|
+
* The language has literals (numbers, 'quoted strings', true, false, null),
|
|
17
|
+
* state names, `!`, `+ -`, the six comparisons and `&& ||`, with JavaScript's
|
|
18
|
+
* meaning. Nothing is ever evaluated as JavaScript, so a page keeps working
|
|
19
|
+
* under a strict Content-Security-Policy.
|
|
20
|
+
*/
|
|
21
|
+
export declare const SCOPE_ATTR = "data-tq-scope";
|
|
22
|
+
export declare const STATE_ATTR = "data-tq-state";
|
|
23
|
+
export declare const SLOT_ATTR = "data-tq-slot";
|
|
24
|
+
export declare const IF_ATTR = "data-tq-if";
|
|
25
|
+
export declare const CLASS_ATTR = "data-tq-class";
|
|
26
|
+
export declare const CLICK_ATTR = "data-tq-on-click";
|
|
27
|
+
export declare const RUNTIME_FILE_NAME = "tq-state";
|
|
28
|
+
export type StateValue = string | number | boolean | null;
|
|
29
|
+
export type ComparisonOperator = '===' | '!==' | '<' | '<=' | '>' | '>=';
|
|
30
|
+
export type BinaryOperator = '||' | '&&' | ComparisonOperator | '+' | '-';
|
|
31
|
+
export type StateExpression = {
|
|
32
|
+
kind: 'literal';
|
|
33
|
+
value: StateValue;
|
|
34
|
+
} | {
|
|
35
|
+
kind: 'state';
|
|
36
|
+
name: string;
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'not';
|
|
39
|
+
operand: StateExpression;
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'binary';
|
|
42
|
+
operator: BinaryOperator;
|
|
43
|
+
left: StateExpression;
|
|
44
|
+
right: StateExpression;
|
|
45
|
+
};
|
|
46
|
+
export interface StateAssignment {
|
|
47
|
+
name: string;
|
|
48
|
+
value: StateExpression;
|
|
49
|
+
}
|
|
50
|
+
export interface ClassBinding {
|
|
51
|
+
className: string;
|
|
52
|
+
condition: StateExpression;
|
|
53
|
+
}
|
|
54
|
+
export declare const isStateName: (name: string) => boolean;
|
|
55
|
+
export declare const isBindableClassName: (name: string) => boolean;
|
|
56
|
+
export declare const isStateValue: (value: unknown) => value is StateValue;
|
|
57
|
+
export declare const literal: (value: StateValue) => StateExpression;
|
|
58
|
+
export declare const state: (name: string) => StateExpression;
|
|
59
|
+
export declare const not: (operand: StateExpression) => StateExpression;
|
|
60
|
+
export declare const binary: (operator: BinaryOperator, left: StateExpression, right: StateExpression) => StateExpression;
|
|
61
|
+
export declare const stateNamesOf: (expression: StateExpression, names?: Set<string>) => Set<string>;
|
|
62
|
+
export declare const printValue: (value: StateValue) => string;
|
|
63
|
+
export declare const printExpression: (expression: StateExpression) => string;
|
|
64
|
+
export declare const printAssignments: (assignments: StateAssignment[]) => string;
|
|
65
|
+
export declare const printClassBindings: (bindings: ClassBinding[]) => string;
|
|
66
|
+
/** The same meaning the runtime gives an expression, for the page's first paint. */
|
|
67
|
+
export declare const evaluateExpression: (expression: StateExpression, values: Record<string, StateValue>) => unknown;
|
|
68
|
+
/**
|
|
69
|
+
* An attribute value as the HTML printer must receive it: it writes values
|
|
70
|
+
* between double quotes and escapes nothing. `&&` and `<` stay readable; an
|
|
71
|
+
* ampersand that could start a character reference does not.
|
|
72
|
+
*/
|
|
73
|
+
export declare const escapeAttributeValue: (value: string) => string;
|
|
74
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state-bindings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,UAAU,kBAAkB,CAAA;AACzC,eAAO,MAAM,UAAU,kBAAkB,CAAA;AACzC,eAAO,MAAM,SAAS,iBAAiB,CAAA;AACvC,eAAO,MAAM,OAAO,eAAe,CAAA;AACnC,eAAO,MAAM,UAAU,kBAAkB,CAAA;AACzC,eAAO,MAAM,UAAU,qBAAqB,CAAA;AAE5C,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAEzD,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;AACxE,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,kBAAkB,GAAG,GAAG,GAAG,GAAG,CAAA;AAEzE,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,CAAA;AAE/F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,eAAe,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,eAAe,CAAA;CAC3B;AAID,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,OACwB,CAAA;AAEnE,eAAO,MAAM,mBAAmB,SAAU,MAAM,KAAG,OAAsC,CAAA;AAEzF,eAAO,MAAM,YAAY,UAAW,OAAO,wBAIY,CAAA;AAEvD,eAAO,MAAM,OAAO,UAAW,UAAU,KAAG,eAA+C,CAAA;AAC3F,eAAO,MAAM,KAAK,SAAU,MAAM,KAAG,eAA4C,CAAA;AACjF,eAAO,MAAM,GAAG,YAAa,eAAe,KAAG,eAA6C,CAAA;AAC5F,eAAO,MAAM,MAAM,aACP,cAAc,QAClB,eAAe,SACd,eAAe,KACrB,eAA8D,CAAA;AAEjE,eAAO,MAAM,YAAY,eAAgB,eAAe,qCAgBvD,CAAA;AA6BD,eAAO,MAAM,UAAU,UAAW,UAAU,KAAG,MAK9C,CAAA;AAED,eAAO,MAAM,eAAe,eAAgB,eAAe,KAAG,MAkB7D,CAAA;AAED,eAAO,MAAM,gBAAgB,gBAAiB,eAAe,EAAE,KAAG,MACsB,CAAA;AAExF,eAAO,MAAM,kBAAkB,aAAc,YAAY,EAAE,KAAG,MAG/C,CAAA;AAEf,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,eACjB,eAAe,UACnB,OAAO,MAAM,EAAE,UAAU,CAAC,KACjC,OAyCF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,UAAW,MAAM,KAAG,MACc,CAAA"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* State bindings of the static HTML export: the attributes a downloaded page
|
|
4
|
+
* carries so that clicks open menus, switch tabs and restyle elements, and the
|
|
5
|
+
* small expression language they are written in. The HTML generator writes
|
|
6
|
+
* them (teleport-plugin-html-base-component), the one runtime file a download
|
|
7
|
+
* ships (`tq-state.js`, teleport-project-generator-html) reads them back.
|
|
8
|
+
*
|
|
9
|
+
* data-tq-scope="Navigation" a page root or a component instance:
|
|
10
|
+
* data-tq-state="menuOpen = false" its own store, with its starting values
|
|
11
|
+
* data-tq-if="menuOpen" shown while true; `hidden` when it starts false
|
|
12
|
+
* data-tq-class="active: tab === 0" the class is on while true
|
|
13
|
+
* data-tq-on-click="menuOpen = !menuOpen"
|
|
14
|
+
* data-tq-slot content a parent put into a component:
|
|
15
|
+
* it reads the parent's store
|
|
16
|
+
*
|
|
17
|
+
* The language has literals (numbers, 'quoted strings', true, false, null),
|
|
18
|
+
* state names, `!`, `+ -`, the six comparisons and `&& ||`, with JavaScript's
|
|
19
|
+
* meaning. Nothing is ever evaluated as JavaScript, so a page keeps working
|
|
20
|
+
* under a strict Content-Security-Policy.
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.escapeAttributeValue = exports.evaluateExpression = exports.printClassBindings = exports.printAssignments = exports.printExpression = exports.printValue = exports.stateNamesOf = exports.binary = exports.not = exports.state = exports.literal = exports.isStateValue = exports.isBindableClassName = exports.isStateName = exports.RUNTIME_FILE_NAME = exports.CLICK_ATTR = exports.CLASS_ATTR = exports.IF_ATTR = exports.SLOT_ATTR = exports.STATE_ATTR = exports.SCOPE_ATTR = void 0;
|
|
24
|
+
exports.SCOPE_ATTR = 'data-tq-scope';
|
|
25
|
+
exports.STATE_ATTR = 'data-tq-state';
|
|
26
|
+
exports.SLOT_ATTR = 'data-tq-slot';
|
|
27
|
+
exports.IF_ATTR = 'data-tq-if';
|
|
28
|
+
exports.CLASS_ATTR = 'data-tq-class';
|
|
29
|
+
exports.CLICK_ATTR = 'data-tq-on-click';
|
|
30
|
+
exports.RUNTIME_FILE_NAME = 'tq-state';
|
|
31
|
+
var RESERVED_WORDS = ['true', 'false', 'null'];
|
|
32
|
+
var isStateName = function (name) {
|
|
33
|
+
return /^[A-Za-z_$][\w$]*$/.test(name) && !RESERVED_WORDS.includes(name);
|
|
34
|
+
};
|
|
35
|
+
exports.isStateName = isStateName;
|
|
36
|
+
var isBindableClassName = function (name) { return /^[^\s:;'"\\]+$/.test(name); };
|
|
37
|
+
exports.isBindableClassName = isBindableClassName;
|
|
38
|
+
var isStateValue = function (value) {
|
|
39
|
+
return value === null ||
|
|
40
|
+
typeof value === 'string' ||
|
|
41
|
+
typeof value === 'boolean' ||
|
|
42
|
+
(typeof value === 'number' && Number.isFinite(value));
|
|
43
|
+
};
|
|
44
|
+
exports.isStateValue = isStateValue;
|
|
45
|
+
var literal = function (value) { return ({ kind: 'literal', value: value }); };
|
|
46
|
+
exports.literal = literal;
|
|
47
|
+
var state = function (name) { return ({ kind: 'state', name: name }); };
|
|
48
|
+
exports.state = state;
|
|
49
|
+
var not = function (operand) { return ({ kind: 'not', operand: operand }); };
|
|
50
|
+
exports.not = not;
|
|
51
|
+
var binary = function (operator, left, right) { return ({ kind: 'binary', operator: operator, left: left, right: right }); };
|
|
52
|
+
exports.binary = binary;
|
|
53
|
+
var stateNamesOf = function (expression, names) {
|
|
54
|
+
if (names === void 0) { names = new Set(); }
|
|
55
|
+
switch (expression.kind) {
|
|
56
|
+
case 'state':
|
|
57
|
+
names.add(expression.name);
|
|
58
|
+
break;
|
|
59
|
+
case 'not':
|
|
60
|
+
(0, exports.stateNamesOf)(expression.operand, names);
|
|
61
|
+
break;
|
|
62
|
+
case 'binary':
|
|
63
|
+
(0, exports.stateNamesOf)(expression.left, names);
|
|
64
|
+
(0, exports.stateNamesOf)(expression.right, names);
|
|
65
|
+
break;
|
|
66
|
+
default:
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
return names;
|
|
70
|
+
};
|
|
71
|
+
exports.stateNamesOf = stateNamesOf;
|
|
72
|
+
var PRECEDENCE = {
|
|
73
|
+
'||': 1,
|
|
74
|
+
'&&': 2,
|
|
75
|
+
'===': 3,
|
|
76
|
+
'!==': 3,
|
|
77
|
+
'<': 3,
|
|
78
|
+
'<=': 3,
|
|
79
|
+
'>': 3,
|
|
80
|
+
'>=': 3,
|
|
81
|
+
'+': 4,
|
|
82
|
+
'-': 4,
|
|
83
|
+
};
|
|
84
|
+
var UNARY_PRECEDENCE = 5;
|
|
85
|
+
var PRIMARY_PRECEDENCE = 6;
|
|
86
|
+
var precedenceOf = function (expression) {
|
|
87
|
+
if (expression.kind === 'binary') {
|
|
88
|
+
return PRECEDENCE[expression.operator];
|
|
89
|
+
}
|
|
90
|
+
return expression.kind === 'not' ? UNARY_PRECEDENCE : PRIMARY_PRECEDENCE;
|
|
91
|
+
};
|
|
92
|
+
var printOperand = function (expression, lowestUnwrapped) {
|
|
93
|
+
return precedenceOf(expression) < lowestUnwrapped
|
|
94
|
+
? "(".concat((0, exports.printExpression)(expression), ")")
|
|
95
|
+
: (0, exports.printExpression)(expression);
|
|
96
|
+
};
|
|
97
|
+
var printValue = function (value) {
|
|
98
|
+
if (typeof value === 'string') {
|
|
99
|
+
return "'".concat(value.replace(/[\\']/g, '\\$&'), "'");
|
|
100
|
+
}
|
|
101
|
+
return String(value);
|
|
102
|
+
};
|
|
103
|
+
exports.printValue = printValue;
|
|
104
|
+
var printExpression = function (expression) {
|
|
105
|
+
switch (expression.kind) {
|
|
106
|
+
case 'literal':
|
|
107
|
+
return (0, exports.printValue)(expression.value);
|
|
108
|
+
case 'state':
|
|
109
|
+
return expression.name;
|
|
110
|
+
case 'not':
|
|
111
|
+
return "!".concat(printOperand(expression.operand, UNARY_PRECEDENCE));
|
|
112
|
+
case 'binary': {
|
|
113
|
+
var level = PRECEDENCE[expression.operator];
|
|
114
|
+
var chains = expression.operator === '||' || expression.operator === '&&';
|
|
115
|
+
var left = printOperand(expression.left, level === 3 ? level + 1 : level);
|
|
116
|
+
var right = printOperand(expression.right, chains ? level : level + 1);
|
|
117
|
+
return "".concat(left, " ").concat(expression.operator, " ").concat(right);
|
|
118
|
+
}
|
|
119
|
+
default:
|
|
120
|
+
throw new Error("Unknown state expression ".concat(JSON.stringify(expression)));
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
exports.printExpression = printExpression;
|
|
124
|
+
var printAssignments = function (assignments) {
|
|
125
|
+
return assignments.map(function (_a) {
|
|
126
|
+
var name = _a.name, value = _a.value;
|
|
127
|
+
return "".concat(name, " = ").concat((0, exports.printExpression)(value));
|
|
128
|
+
}).join('; ');
|
|
129
|
+
};
|
|
130
|
+
exports.printAssignments = printAssignments;
|
|
131
|
+
var printClassBindings = function (bindings) {
|
|
132
|
+
return bindings
|
|
133
|
+
.map(function (_a) {
|
|
134
|
+
var className = _a.className, condition = _a.condition;
|
|
135
|
+
return "".concat(className, ": ").concat((0, exports.printExpression)(condition));
|
|
136
|
+
})
|
|
137
|
+
.join('; ');
|
|
138
|
+
};
|
|
139
|
+
exports.printClassBindings = printClassBindings;
|
|
140
|
+
/** The same meaning the runtime gives an expression, for the page's first paint. */
|
|
141
|
+
var evaluateExpression = function (expression, values) {
|
|
142
|
+
switch (expression.kind) {
|
|
143
|
+
case 'literal':
|
|
144
|
+
return expression.value;
|
|
145
|
+
case 'state':
|
|
146
|
+
return Object.prototype.hasOwnProperty.call(values, expression.name)
|
|
147
|
+
? values[expression.name]
|
|
148
|
+
: undefined;
|
|
149
|
+
case 'not':
|
|
150
|
+
return !(0, exports.evaluateExpression)(expression.operand, values);
|
|
151
|
+
case 'binary': {
|
|
152
|
+
var left = (0, exports.evaluateExpression)(expression.left, values);
|
|
153
|
+
var right = (0, exports.evaluateExpression)(expression.right, values);
|
|
154
|
+
switch (expression.operator) {
|
|
155
|
+
case '||':
|
|
156
|
+
return left || right;
|
|
157
|
+
case '&&':
|
|
158
|
+
return left && right;
|
|
159
|
+
case '===':
|
|
160
|
+
return left === right;
|
|
161
|
+
case '!==':
|
|
162
|
+
return left !== right;
|
|
163
|
+
case '<':
|
|
164
|
+
return left < right;
|
|
165
|
+
case '<=':
|
|
166
|
+
return left <= right;
|
|
167
|
+
case '>':
|
|
168
|
+
return left > right;
|
|
169
|
+
case '>=':
|
|
170
|
+
return left >= right;
|
|
171
|
+
case '+':
|
|
172
|
+
return left + right;
|
|
173
|
+
case '-':
|
|
174
|
+
return left - right;
|
|
175
|
+
default:
|
|
176
|
+
throw new Error("Unknown state operator ".concat(expression.operator));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
default:
|
|
180
|
+
throw new Error("Unknown state expression ".concat(JSON.stringify(expression)));
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
exports.evaluateExpression = evaluateExpression;
|
|
184
|
+
/**
|
|
185
|
+
* An attribute value as the HTML printer must receive it: it writes values
|
|
186
|
+
* between double quotes and escapes nothing. `&&` and `<` stay readable; an
|
|
187
|
+
* ampersand that could start a character reference does not.
|
|
188
|
+
*/
|
|
189
|
+
var escapeAttributeValue = function (value) {
|
|
190
|
+
return value.replace(/&(?=[A-Za-z#])/g, '&').replace(/"/g, '"');
|
|
191
|
+
};
|
|
192
|
+
exports.escapeAttributeValue = escapeAttributeValue;
|
|
193
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state-bindings/index.ts"],"names":[],"mappings":"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"}
|