@syntrologie/runtime-sdk 0.2.0 → 0.2.3
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/CAPABILITIES.md +400 -0
- package/dist/SmartCanvasApp.js +28 -10
- package/dist/SmartCanvasApp.js.map +1 -1
- package/dist/api.d.ts +23 -0
- package/dist/api.js +23 -5
- package/dist/api.js.map +1 -1
- package/dist/blocks/data/ComparisonBlock.d.ts +10 -0
- package/dist/blocks/data/ComparisonBlock.js +92 -0
- package/dist/blocks/data/ComparisonBlock.js.map +1 -0
- package/dist/blocks/data/StatsBlock.d.ts +10 -0
- package/dist/blocks/data/StatsBlock.js +103 -0
- package/dist/blocks/data/StatsBlock.js.map +1 -0
- package/dist/blocks/data/index.d.ts +2 -0
- package/dist/blocks/data/index.js +3 -0
- package/dist/blocks/data/index.js.map +1 -0
- package/dist/blocks/index.d.ts +26 -0
- package/dist/blocks/index.js +94 -0
- package/dist/blocks/index.js.map +1 -0
- package/dist/blocks/interactive/ChecklistBlock.d.ts +11 -0
- package/dist/blocks/interactive/ChecklistBlock.js +110 -0
- package/dist/blocks/interactive/ChecklistBlock.js.map +1 -0
- package/dist/blocks/interactive/RatingBlock.d.ts +11 -0
- package/dist/blocks/interactive/RatingBlock.js +131 -0
- package/dist/blocks/interactive/RatingBlock.js.map +1 -0
- package/dist/blocks/interactive/index.d.ts +2 -0
- package/dist/blocks/interactive/index.js +3 -0
- package/dist/blocks/interactive/index.js.map +1 -0
- package/dist/blocks/notification/NotificationBlock.d.ts +26 -0
- package/dist/blocks/notification/NotificationBlock.js +166 -0
- package/dist/blocks/notification/NotificationBlock.js.map +1 -0
- package/dist/blocks/notification/index.d.ts +1 -0
- package/dist/blocks/notification/index.js +2 -0
- package/dist/blocks/notification/index.js.map +1 -0
- package/dist/bootstrap.d.ts +19 -1
- package/dist/bootstrap.js +118 -17
- package/dist/bootstrap.js.map +1 -1
- package/dist/components/ShadowCanvasOverlay.d.ts +12 -3
- package/dist/components/ShadowCanvasOverlay.js +75 -24
- package/dist/components/ShadowCanvasOverlay.js.map +1 -1
- package/dist/components/{RectangleCard.d.ts → TileCard.d.ts} +4 -4
- package/dist/components/{RectangleCard.js → TileCard.js} +57 -6
- package/dist/components/TileCard.js.map +1 -0
- package/dist/components/TileWheel.d.ts +8 -0
- package/dist/components/{RectangleWheel.js → TileWheel.js} +7 -7
- package/dist/components/TileWheel.js.map +1 -0
- package/dist/configFetcher.js.map +1 -1
- package/dist/earlyPatcher.js +1 -2
- package/dist/earlyPatcher.js.map +1 -1
- package/dist/editorLoader.js +74 -17
- package/dist/editorLoader.js.map +1 -1
- package/dist/experiments/adapters/growthbook.d.ts +18 -2
- package/dist/experiments/adapters/growthbook.js +17 -3
- package/dist/experiments/adapters/growthbook.js.map +1 -1
- package/dist/experiments/registry.d.ts +18 -4
- package/dist/experiments/registry.js +1 -1
- package/dist/experiments/registry.js.map +1 -1
- package/dist/experiments/types.d.ts +8 -3
- package/dist/fetchers/cdnFetcher.js.map +1 -1
- package/dist/fetchers/experimentsFetcher.js +20 -0
- package/dist/fetchers/experimentsFetcher.js.map +1 -1
- package/dist/fetchers/types.d.ts +2 -2
- package/dist/hooks/useCanvasOverlays.d.ts +5 -1
- package/dist/hooks/useCanvasOverlays.js +33 -13
- package/dist/hooks/useCanvasOverlays.js.map +1 -1
- package/dist/hooks/useShadowCanvasConfig.d.ts +9 -2
- package/dist/hooks/useShadowCanvasConfig.js +8 -8
- package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
- package/dist/hostPatcher/core/patcher.js +14 -15
- package/dist/hostPatcher/core/patcher.js.map +1 -1
- package/dist/hostPatcher/core/sanitizer.js +1 -1
- package/dist/hostPatcher/core/sanitizer.js.map +1 -1
- package/dist/hostPatcher/core/types.d.ts +8 -9
- package/dist/hostPatcher/policy/defaultPolicy.d.ts +4 -0
- package/dist/hostPatcher/policy/defaultPolicy.js +9 -37
- package/dist/hostPatcher/policy/defaultPolicy.js.map +1 -1
- package/dist/hostPatcher/utils/anchors.js +3 -3
- package/dist/hostPatcher/utils/anchors.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/overlays/recipeRegistry.d.ts +14 -0
- package/dist/overlays/recipeRegistry.js +32 -0
- package/dist/overlays/recipeRegistry.js.map +1 -0
- package/dist/overlays/runtime/index.d.ts +1 -0
- package/dist/overlays/runtime/index.js +1 -0
- package/dist/overlays/runtime/index.js.map +1 -1
- package/dist/overlays/runtime/overlay/modal.d.ts +11 -0
- package/dist/overlays/runtime/overlay/modal.js +78 -0
- package/dist/overlays/runtime/overlay/modal.js.map +1 -0
- package/dist/overlays/runtime/overlay/root.js +132 -0
- package/dist/overlays/runtime/overlay/root.js.map +1 -1
- package/dist/overlays/runtime/overlay/runner.d.ts +2 -0
- package/dist/overlays/runtime/overlay/runner.js +441 -2
- package/dist/overlays/runtime/overlay/runner.js.map +1 -1
- package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -0
- package/dist/overlays/runtime/overlay/tooltip.js +61 -1
- package/dist/overlays/runtime/overlay/tooltip.js.map +1 -1
- package/dist/overlays/schema.d.ts +6 -6
- package/dist/overlays/types.d.ts +55 -1
- package/dist/react.d.ts +6 -1
- package/dist/react.js +31 -9
- package/dist/react.js.map +1 -1
- package/dist/render/RenderContext.d.ts +39 -0
- package/dist/render/RenderContext.js +67 -0
- package/dist/render/RenderContext.js.map +1 -0
- package/dist/render/index.d.ts +3 -0
- package/dist/render/index.js +3 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/types.d.ts +81 -0
- package/dist/render/types.js +2 -0
- package/dist/render/types.js.map +1 -0
- package/dist/smart-canvas.esm.js +192 -25
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +25953 -26837
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +192 -25
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/telemetry/adapters/posthog.d.ts +7 -1
- package/dist/telemetry/adapters/posthog.js +49 -1
- package/dist/telemetry/adapters/posthog.js.map +1 -1
- package/dist/telemetry/types.d.ts +30 -0
- package/dist/theme/ThemeProvider.d.ts +31 -0
- package/dist/theme/ThemeProvider.js +109 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/defaultTheme.d.ts +18 -0
- package/dist/theme/defaultTheme.js +163 -0
- package/dist/theme/defaultTheme.js.map +1 -0
- package/dist/theme/extractHostTheme.d.ts +14 -0
- package/dist/theme/extractHostTheme.js +261 -0
- package/dist/theme/extractHostTheme.js.map +1 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/theme/index.js +7 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/types.d.ts +91 -0
- package/dist/theme/types.js +6 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/token.d.ts +4 -0
- package/dist/token.js.map +1 -1
- package/dist/types.d.ts +228 -47
- package/package.json +8 -4
- package/schema/canvas-config.schema.json +24 -15
- package/dist/components/RectangleCard.js.map +0 -1
- package/dist/components/RectangleWheel.d.ts +0 -8
- package/dist/components/RectangleWheel.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useShadowCanvasConfig.js","sourceRoot":"","sources":["../../src/hooks/useShadowCanvasConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useShadowCanvasConfig.js","sourceRoot":"","sources":["../../src/hooks/useShadowCanvasConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AA8BlE,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAE,EAAE,CACxC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,eAAC,OAAA,CAAC,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;AAE7D,MAAM,UAAU,qBAAqB,CAAC,EACpC,OAAO,EACP,cAAc,GAAG,KAAK,EACtB,WAAW,GACkB;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAA0B;QAC1D,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC;YACH,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAC;YACjC,IAAI,KAAK,GAAiB,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,QAAQ,CAAC;gBACP,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;gBACvB,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAClB,GAAG,IAAI;gBACP,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAC5D,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,EAAE,CAAC;QACP,IAAI,CAAC,cAAc;YAAE,OAAO;QAC5B,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC7C,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -8,7 +8,7 @@ function log(opts, level, msg, data) {
|
|
|
8
8
|
console[level]('[host-patcher]', msg, data !== null && data !== void 0 ? data : '');
|
|
9
9
|
}
|
|
10
10
|
export function applyPatch(patch, opts = {}) {
|
|
11
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k
|
|
11
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
12
12
|
const policy = (_a = opts.policy) !== null && _a !== void 0 ? _a : defaultPolicy;
|
|
13
13
|
if (applied.has(patch.id))
|
|
14
14
|
return { ok: true }; // idempotent
|
|
@@ -17,7 +17,6 @@ export function applyPatch(patch, opts = {}) {
|
|
|
17
17
|
return { ok: false, reason: 'anchor-missing' };
|
|
18
18
|
if (!checkInvariants(anchorEl, patch.invariants))
|
|
19
19
|
return { ok: false, reason: 'invariants-failed' };
|
|
20
|
-
const tier = (_b = patch.tier) !== null && _b !== void 0 ? _b : 'additive';
|
|
21
20
|
const inserted = [];
|
|
22
21
|
const snapshot = { classes: undefined, attrs: undefined, styles: undefined, text: undefined };
|
|
23
22
|
for (const op of patch.operations) {
|
|
@@ -34,7 +33,7 @@ export function applyPatch(patch, opts = {}) {
|
|
|
34
33
|
break;
|
|
35
34
|
}
|
|
36
35
|
case 'append': {
|
|
37
|
-
const node = (
|
|
36
|
+
const node = (_b = op.node) !== null && _b !== void 0 ? _b : (() => {
|
|
38
37
|
const div = document.createElement('div');
|
|
39
38
|
if (op.html)
|
|
40
39
|
div.innerHTML = policy.sanitizeHTML(op.html);
|
|
@@ -45,7 +44,7 @@ export function applyPatch(patch, opts = {}) {
|
|
|
45
44
|
break;
|
|
46
45
|
}
|
|
47
46
|
case 'prepend': {
|
|
48
|
-
const node = (
|
|
47
|
+
const node = (_c = op.node) !== null && _c !== void 0 ? _c : (() => {
|
|
49
48
|
const div = document.createElement('div');
|
|
50
49
|
if (op.html)
|
|
51
50
|
div.innerHTML = policy.sanitizeHTML(op.html);
|
|
@@ -56,29 +55,29 @@ export function applyPatch(patch, opts = {}) {
|
|
|
56
55
|
break;
|
|
57
56
|
}
|
|
58
57
|
case 'addClass': {
|
|
59
|
-
if (!policy.allowClass(op.className
|
|
58
|
+
if (!policy.allowClass(op.className)) {
|
|
60
59
|
log(opts, 'warn', 'class not allowed', op.className);
|
|
61
60
|
break;
|
|
62
61
|
}
|
|
63
|
-
(
|
|
62
|
+
(_d = snapshot.classes) !== null && _d !== void 0 ? _d : (snapshot.classes = new Set(Array.from(anchorEl.classList)));
|
|
64
63
|
anchorEl.classList.add(op.className);
|
|
65
64
|
break;
|
|
66
65
|
}
|
|
67
66
|
case 'removeClass': {
|
|
68
|
-
if (!policy.allowClass(op.className
|
|
67
|
+
if (!policy.allowClass(op.className)) {
|
|
69
68
|
log(opts, 'warn', 'class not allowed', op.className);
|
|
70
69
|
break;
|
|
71
70
|
}
|
|
72
|
-
(
|
|
71
|
+
(_e = snapshot.classes) !== null && _e !== void 0 ? _e : (snapshot.classes = new Set(Array.from(anchorEl.classList)));
|
|
73
72
|
anchorEl.classList.remove(op.className);
|
|
74
73
|
break;
|
|
75
74
|
}
|
|
76
75
|
case 'setAttr': {
|
|
77
|
-
if (!policy.allowAttribute(op.name
|
|
76
|
+
if (!policy.allowAttribute(op.name)) {
|
|
78
77
|
log(opts, 'warn', 'attr not allowed', op.name);
|
|
79
78
|
break;
|
|
80
79
|
}
|
|
81
|
-
(
|
|
80
|
+
(_f = snapshot.attrs) !== null && _f !== void 0 ? _f : (snapshot.attrs = new Map());
|
|
82
81
|
if (!snapshot.attrs.has(op.name)) {
|
|
83
82
|
const current = anchorEl.getAttribute(op.name);
|
|
84
83
|
if (current !== null)
|
|
@@ -93,11 +92,11 @@ export function applyPatch(patch, opts = {}) {
|
|
|
93
92
|
break;
|
|
94
93
|
}
|
|
95
94
|
case 'setStyle': {
|
|
96
|
-
if (!policy.allowStyle(op.prop, (
|
|
95
|
+
if (!policy.allowStyle(op.prop, (_g = op.value) !== null && _g !== void 0 ? _g : null)) {
|
|
97
96
|
log(opts, 'warn', 'style not allowed', op.prop);
|
|
98
97
|
break;
|
|
99
98
|
}
|
|
100
|
-
(
|
|
99
|
+
(_h = snapshot.styles) !== null && _h !== void 0 ? _h : (snapshot.styles = new Map());
|
|
101
100
|
if (!snapshot.styles.has(op.prop)) {
|
|
102
101
|
const prev = anchorEl.style.getPropertyValue(op.prop);
|
|
103
102
|
snapshot.styles.set(op.prop, prev || '__NULL__');
|
|
@@ -109,11 +108,11 @@ export function applyPatch(patch, opts = {}) {
|
|
|
109
108
|
break;
|
|
110
109
|
}
|
|
111
110
|
case 'setText': {
|
|
112
|
-
if (!policy.allowSetText(
|
|
113
|
-
log(opts, 'warn', 'setText not allowed
|
|
111
|
+
if (!policy.allowSetText()) {
|
|
112
|
+
log(opts, 'warn', 'setText not allowed');
|
|
114
113
|
break;
|
|
115
114
|
}
|
|
116
|
-
(
|
|
115
|
+
(_j = snapshot.text) !== null && _j !== void 0 ? _j : (snapshot.text = (_k = anchorEl.textContent) !== null && _k !== void 0 ? _k : '');
|
|
117
116
|
anchorEl.textContent = op.text;
|
|
118
117
|
break;
|
|
119
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../../src/hostPatcher/core/patcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEhD,SAAS,GAAG,CAAC,IAAoB,EAAE,KAAoC,EAAE,GAAW,EAAE,IAAU;IAC9F,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SACxC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,OAAuB,EAAE;;IAChE,MAAM,MAAM,GAAW,MAAA,IAAI,CAAC,MAAM,mCAAI,aAAa,CAAC;IAEpD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa;IAE7D,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAEpG,MAAM,
|
|
1
|
+
{"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../../src/hostPatcher/core/patcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEhD,SAAS,GAAG,CAAC,IAAoB,EAAE,KAAoC,EAAE,GAAW,EAAE,IAAU;IAC9F,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SACxC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,OAAuB,EAAE;;IAChE,MAAM,MAAM,GAAW,MAAA,IAAI,CAAC,MAAM,mCAAI,aAAa,CAAC;IAEpD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa;IAE7D,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC9D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAEpG,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAA6B,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAExH,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChD,SAAS,CAAC,YAAY,CAAC,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzD,IAAI,EAAE,CAAC,IAAI;oBAAE,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAChE,IAAI,EAAE,CAAC,IAAI;oBAAE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,IAAI,GAAG,MAAA,EAAE,CAAC,IAAI,mCAAI,CAAC,GAAG,EAAE;oBAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,EAAE,CAAC,IAAI;wBAAE,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC1D,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC,EAAE,CAAC;gBACL,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,GAAG,MAAA,EAAE,CAAC,IAAI,mCAAI,CAAC,GAAG,EAAE;oBAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,EAAE,CAAC,IAAI;wBAAE,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC1D,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC,EAAE,CAAC;gBACL,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;oBAAC,GAAG,CAAC,IAAI,EAAC,MAAM,EAAC,mBAAmB,EAAC,EAAE,CAAC,SAAS,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBACnG,MAAA,QAAQ,CAAC,OAAO,oCAAhB,QAAQ,CAAC,OAAO,GAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC;gBAC7D,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrC,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;oBAAC,GAAG,CAAC,IAAI,EAAC,MAAM,EAAC,mBAAmB,EAAC,EAAE,CAAC,SAAS,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBACnG,MAAA,QAAQ,CAAC,OAAO,oCAAhB,QAAQ,CAAC,OAAO,GAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAC;gBAC7D,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAC,GAAG,CAAC,IAAI,EAAC,MAAM,EAAC,kBAAkB,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBAC5F,MAAA,QAAQ,CAAC,KAAK,oCAAd,QAAQ,CAAC,KAAK,GAAK,IAAI,GAAG,EAAE,EAAC;gBAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC/C,IAAI,OAAO,KAAK,IAAI;wBAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;wBACtD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI;oBAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;;oBACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAA,EAAE,CAAC,KAAK,mCAAI,IAAI,CAAC,EAAE,CAAC;oBAAC,GAAG,CAAC,IAAI,EAAC,MAAM,EAAC,mBAAmB,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBAC3G,MAAA,QAAQ,CAAC,MAAM,oCAAf,QAAQ,CAAC,MAAM,GAAK,IAAI,GAAG,EAAE,EAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,GAAI,QAAwB,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACvE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,UAAU,CAAC,CAAC;gBACnD,CAAC;gBACD,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI;oBAAG,QAAwB,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;;oBACzE,QAAwB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrG,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;oBAAC,GAAG,CAAC,IAAI,EAAC,MAAM,EAAC,qBAAqB,CAAC,CAAC;oBAAC,MAAM;gBAAC,CAAC;gBAC9E,MAAA,QAAQ,CAAC,IAAI,oCAAb,QAAQ,CAAC,IAAI,GAAK,MAAA,QAAQ,CAAC,WAAW,mCAAI,EAAE,EAAC;gBAC7C,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC;gBAC/B,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,GAAG,CAAC,IAAI,EAAC,MAAM,EAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAU,EAAE,OAAuB,EAAE;IAC/D,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE;QAAE,OAAO;IAEhB,wBAAwB;IACxB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAAC,IAAI,CAAC;YAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IAAC,CAAC;IAE7D,mBAAmB;IACnB,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;IACvB,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtE,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,QAAS,CAAC,KAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE;gBAChC,IAAI,CAAC,KAAK,UAAU;oBAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;;oBACvC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAW,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,EAAE,GAAI,EAAkB,CAAC,KAAK,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE;gBACjC,IAAI,CAAC,KAAK,UAAU;oBAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;;oBACtC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAW,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -17,7 +17,7 @@ export function sanitizeWithFallback(html) {
|
|
|
17
17
|
tpl.innerHTML = html;
|
|
18
18
|
const root = tpl.content;
|
|
19
19
|
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, null);
|
|
20
|
-
const allowed = new Set(['b', 'strong', 'i', 'em', 'u', 'span', 'div', 'p', 'br', 'ul', 'ol', 'li', 'code', 'pre', 'small', 'sup', 'sub', 'a']);
|
|
20
|
+
const allowed = new Set(['b', 'strong', 'i', 'em', 'u', 'span', 'div', 'p', 'br', 'ul', 'ol', 'li', 'code', 'pre', 'small', 'sup', 'sub', 'a', 'button']);
|
|
21
21
|
const toRemove = [];
|
|
22
22
|
while (walker.nextNode()) {
|
|
23
23
|
const el = walker.currentNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../../src/hostPatcher/core/sanitizer.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,IAAY;;IAC/C,MAAM,SAAS,GAAG,OAAQ,MAAc,CAAC,SAAS,KAAK,UAAU,CAAC;IAClE,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,aAAa;YACb,MAAM,CAAC,GAAG,IAAK,MAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,GAAG,CAAC,SAAS,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,6BAA6B;IAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../../src/hostPatcher/core/sanitizer.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB,CAAC,IAAY;;IAC/C,MAAM,SAAS,GAAG,OAAQ,MAAc,CAAC,SAAS,KAAK,UAAU,CAAC;IAClE,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,aAAa;YACb,MAAM,CAAC,GAAG,IAAK,MAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,GAAG,CAAC,SAAS,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,6BAA6B;IAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,QAAQ,CAAC,CAAC,CAAC;IACxI,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,WAAsB,CAAC;QACzC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAI,OAAO,IAAI,OAAO;gBAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,UAAU;YAAE,MAAA,EAAE,CAAC,UAAU,0CAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACrE,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
export type AnchorSelector = {
|
|
2
|
-
|
|
2
|
+
type: 'css';
|
|
3
3
|
value: string;
|
|
4
4
|
within?: 'document' | 'shadow';
|
|
5
5
|
} | {
|
|
6
|
-
|
|
6
|
+
type: 'data';
|
|
7
7
|
key: string;
|
|
8
8
|
value?: string;
|
|
9
9
|
within?: 'document' | 'shadow';
|
|
10
10
|
} | {
|
|
11
|
-
|
|
11
|
+
type: 'aria';
|
|
12
12
|
role?: string;
|
|
13
13
|
label?: string;
|
|
14
14
|
within?: 'document' | 'shadow';
|
|
15
15
|
} | {
|
|
16
|
-
|
|
16
|
+
type: 'ref';
|
|
17
17
|
el: HTMLElement;
|
|
18
18
|
};
|
|
19
19
|
export type Invariants = {
|
|
@@ -59,7 +59,6 @@ export type Patch = {
|
|
|
59
59
|
anchor: AnchorSelector;
|
|
60
60
|
invariants?: Invariants;
|
|
61
61
|
operations: Operation[];
|
|
62
|
-
tier?: 'additive' | 'moderate' | 'surgical';
|
|
63
62
|
reapplyOn?: Array<'route' | 'anchor-mutation'>;
|
|
64
63
|
rollbackOn?: Array<'route' | 'anchor-missing'>;
|
|
65
64
|
};
|
|
@@ -75,10 +74,10 @@ export type AppliedPatch = {
|
|
|
75
74
|
} | null;
|
|
76
75
|
};
|
|
77
76
|
export type Policy = {
|
|
78
|
-
allowAttribute(name: string
|
|
79
|
-
allowClass(name: string
|
|
80
|
-
allowStyle(prop: string, value: string | null
|
|
81
|
-
allowSetText(
|
|
77
|
+
allowAttribute(name: string): boolean;
|
|
78
|
+
allowClass(name: string): boolean;
|
|
79
|
+
allowStyle(prop: string, value: string | null): boolean;
|
|
80
|
+
allowSetText(): boolean;
|
|
82
81
|
sanitizeHTML(html: string): string;
|
|
83
82
|
};
|
|
84
83
|
export type PatcherOptions = {
|
|
@@ -1,41 +1,13 @@
|
|
|
1
1
|
import { sanitizeWithFallback } from '../core/sanitizer';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
]);
|
|
7
|
-
function isCssVar(prop) { return prop.startsWith('--'); }
|
|
8
|
-
function isDataOrAria(name) { return name.startsWith('data-') || name.startsWith('aria-') || name === 'role'; }
|
|
9
|
-
function isSyntroClass(name) { return name.startsWith('syntro-') || name.startsWith('sc-') || name.startsWith('sx-'); }
|
|
2
|
+
/**
|
|
3
|
+
* Default policy - allows all operations.
|
|
4
|
+
* HTML is still sanitized for security.
|
|
5
|
+
*/
|
|
10
6
|
export const defaultPolicy = {
|
|
11
|
-
allowAttribute(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return true;
|
|
17
|
-
return false;
|
|
18
|
-
},
|
|
19
|
-
allowClass(name, _tier) {
|
|
20
|
-
// only prefixed classes to avoid colliding with host BEM/tailwind
|
|
21
|
-
return isSyntroClass(name);
|
|
22
|
-
},
|
|
23
|
-
allowStyle(prop, _value, tier) {
|
|
24
|
-
if (isCssVar(prop))
|
|
25
|
-
return true;
|
|
26
|
-
if (SAFE_STYLE_PROPS.has(prop))
|
|
27
|
-
return true;
|
|
28
|
-
// 'surgical' tier may allow a tiny extra set if needed
|
|
29
|
-
if (tier === 'surgical' && (prop === 'backgroundColor' || prop === 'color'))
|
|
30
|
-
return true;
|
|
31
|
-
return false;
|
|
32
|
-
},
|
|
33
|
-
allowSetText(tier) {
|
|
34
|
-
// only 'surgical' allows host text edits; prefer additive badges otherwise
|
|
35
|
-
return tier === 'surgical';
|
|
36
|
-
},
|
|
37
|
-
sanitizeHTML(html) {
|
|
38
|
-
return sanitizeWithFallback(html);
|
|
39
|
-
}
|
|
7
|
+
allowAttribute() { return true; },
|
|
8
|
+
allowClass() { return true; },
|
|
9
|
+
allowStyle() { return true; },
|
|
10
|
+
allowSetText() { return true; },
|
|
11
|
+
sanitizeHTML(html) { return sanitizeWithFallback(html); }
|
|
40
12
|
};
|
|
41
13
|
//# sourceMappingURL=defaultPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultPolicy.js","sourceRoot":"","sources":["../../../src/hostPatcher/policy/defaultPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"defaultPolicy.js","sourceRoot":"","sources":["../../../src/hostPatcher/policy/defaultPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,cAAc,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IACjC,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAC7B,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAC/B,YAAY,CAAC,IAAI,IAAI,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC"}
|
|
@@ -37,13 +37,13 @@ function validateSelector(selector) {
|
|
|
37
37
|
*/
|
|
38
38
|
function buildAndValidateSelector(sel) {
|
|
39
39
|
let selectorStr;
|
|
40
|
-
if (sel.
|
|
40
|
+
if (sel.type === 'css') {
|
|
41
41
|
selectorStr = sel.value;
|
|
42
42
|
}
|
|
43
|
-
else if (sel.
|
|
43
|
+
else if (sel.type === 'data') {
|
|
44
44
|
selectorStr = `[data-${sel.key}${sel.value ? `="${sel.value}"` : ''}]`;
|
|
45
45
|
}
|
|
46
|
-
else if (sel.
|
|
46
|
+
else if (sel.type === 'aria') {
|
|
47
47
|
const role = sel.role ? `[role="${sel.role}"]` : '';
|
|
48
48
|
const label = sel.label ? `[aria-label="${sel.label}"]` : '';
|
|
49
49
|
selectorStr = `${role}${label}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchors.js","sourceRoot":"","sources":["../../../src/hostPatcher/utils/anchors.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,2BAA2B,GAAG;IAClC,MAAM,EAAY,gDAAgD;IAClE,OAAO,EAAW,mBAAmB;IACrC,SAAS,EAAS,8CAA8C;IAChE,cAAc,EAAI,mCAAmC;CACtD,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;;GAGG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE,QAAQ,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC;QACH,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,GAAmB;IACnD,IAAI,WAAmB,CAAC;IAExB,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"anchors.js","sourceRoot":"","sources":["../../../src/hostPatcher/utils/anchors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ export * from "./types";
|
|
|
2
2
|
export * from "./telemetry";
|
|
3
3
|
export * from "./experiments";
|
|
4
4
|
export * from "./hooks/useShadowCanvasConfig";
|
|
5
|
-
export * from "./components/
|
|
5
|
+
export * from "./components/TileCard";
|
|
6
6
|
export * from "./components/ShadowCanvasOverlay";
|
|
7
|
-
export * from "./components/
|
|
7
|
+
export * from "./components/TileWheel";
|
|
8
8
|
export * from "./controller";
|
|
9
9
|
export * from "./SmartCanvasApp";
|
|
10
10
|
export * from "./SmartCanvasElement";
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,9 @@ export * from "./types";
|
|
|
2
2
|
export * from "./telemetry";
|
|
3
3
|
export * from "./experiments";
|
|
4
4
|
export * from "./hooks/useShadowCanvasConfig";
|
|
5
|
-
export * from "./components/
|
|
5
|
+
export * from "./components/TileCard";
|
|
6
6
|
export * from "./components/ShadowCanvasOverlay";
|
|
7
|
-
export * from "./components/
|
|
7
|
+
export * from "./components/TileWheel";
|
|
8
8
|
export * from "./controller";
|
|
9
9
|
export * from "./SmartCanvasApp";
|
|
10
10
|
export * from "./SmartCanvasElement";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module-level registry for overlay recipes.
|
|
3
|
+
* Allows components like TileCard to look up recipes by ID
|
|
4
|
+
* without needing to prop-drill the entire recipe config.
|
|
5
|
+
*/
|
|
6
|
+
import type { CanvasRecipe } from './types';
|
|
7
|
+
/** Register recipes (called when overlays are loaded) */
|
|
8
|
+
export declare function registerRecipes(recipes: CanvasRecipe[]): void;
|
|
9
|
+
/** Get a recipe by ID */
|
|
10
|
+
export declare function getRecipeById(id: string): CanvasRecipe | undefined;
|
|
11
|
+
/** Get the first step's route for a recipe */
|
|
12
|
+
export declare function getRecipeStartRoute(recipeId: string): string | undefined;
|
|
13
|
+
/** Clear the registry */
|
|
14
|
+
export declare function clearRecipes(): void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module-level registry for overlay recipes.
|
|
3
|
+
* Allows components like TileCard to look up recipes by ID
|
|
4
|
+
* without needing to prop-drill the entire recipe config.
|
|
5
|
+
*/
|
|
6
|
+
let registeredRecipes = [];
|
|
7
|
+
/** Register recipes (called when overlays are loaded) */
|
|
8
|
+
export function registerRecipes(recipes) {
|
|
9
|
+
registeredRecipes = recipes;
|
|
10
|
+
}
|
|
11
|
+
/** Get a recipe by ID */
|
|
12
|
+
export function getRecipeById(id) {
|
|
13
|
+
return registeredRecipes.find(r => r.id === id);
|
|
14
|
+
}
|
|
15
|
+
/** Get the first step's route for a recipe */
|
|
16
|
+
export function getRecipeStartRoute(recipeId) {
|
|
17
|
+
var _a;
|
|
18
|
+
const recipe = getRecipeById(recipeId);
|
|
19
|
+
if (!recipe)
|
|
20
|
+
return undefined;
|
|
21
|
+
// Find the start step
|
|
22
|
+
const startStepId = recipe.startStep || ((_a = recipe.steps[0]) === null || _a === void 0 ? void 0 : _a.id);
|
|
23
|
+
if (!startStepId)
|
|
24
|
+
return undefined;
|
|
25
|
+
const startStep = recipe.steps.find(s => s.id === startStepId);
|
|
26
|
+
return startStep === null || startStep === void 0 ? void 0 : startStep.route;
|
|
27
|
+
}
|
|
28
|
+
/** Clear the registry */
|
|
29
|
+
export function clearRecipes() {
|
|
30
|
+
registeredRecipes = [];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=recipeRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipeRegistry.js","sourceRoot":"","sources":["../../src/overlays/recipeRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,IAAI,iBAAiB,GAAmB,EAAE,CAAC;AAE3C,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,iBAAiB,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,mBAAmB,CAAC,QAAgB;;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,sBAAsB;IACtB,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,KAAI,MAAA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAE,EAAE,CAAA,CAAC;IAC5D,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IAC/D,OAAQ,SAAiB,aAAjB,SAAS,uBAAT,SAAS,CAAU,KAAK,CAAC;AACnC,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,YAAY;IAC1B,iBAAiB,GAAG,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { ensureOverlayRoot, injectBaseStyles } from "./overlay/root";
|
|
2
2
|
export { showTooltip } from "./overlay/tooltip";
|
|
3
3
|
export { showHighlight } from "./overlay/highlight";
|
|
4
|
+
export { showModal } from "./overlay/modal";
|
|
4
5
|
export { runOverlays } from "./overlay/runner";
|
|
5
6
|
export { createAnchorResolver } from "./anchor/resolve";
|
|
6
7
|
export { isVisible, scrollIntoViewIfNeeded } from "./utils/dom";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { ensureOverlayRoot, injectBaseStyles } from "./overlay/root";
|
|
2
2
|
export { showTooltip } from "./overlay/tooltip";
|
|
3
3
|
export { showHighlight } from "./overlay/highlight";
|
|
4
|
+
export { showModal } from "./overlay/modal";
|
|
4
5
|
export { runOverlays } from "./overlay/runner";
|
|
5
6
|
export { createAnchorResolver } from "./anchor/resolve";
|
|
6
7
|
export { isVisible, scrollIntoViewIfNeeded } from "./utils/dom";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/overlays/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/overlays/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ModalHandle = {
|
|
2
|
+
destroy(): void;
|
|
3
|
+
el: HTMLElement;
|
|
4
|
+
};
|
|
5
|
+
export declare function showModal(overlayRoot: HTMLElement, opts: {
|
|
6
|
+
html: string;
|
|
7
|
+
size?: 'sm' | 'md' | 'lg';
|
|
8
|
+
blocking?: boolean;
|
|
9
|
+
scrimOpacity?: number;
|
|
10
|
+
onAction?: (actionId: string) => void;
|
|
11
|
+
}): ModalHandle;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { sanitizeWithFallback } from '../../../hostPatcher/core/sanitizer';
|
|
2
|
+
export function showModal(overlayRoot, opts) {
|
|
3
|
+
var _a, _b;
|
|
4
|
+
// Create scrim backdrop
|
|
5
|
+
const scrim = document.createElement('div');
|
|
6
|
+
scrim.className = 'syntro-modal-scrim';
|
|
7
|
+
scrim.style.opacity = String((_a = opts.scrimOpacity) !== null && _a !== void 0 ? _a : 0.6);
|
|
8
|
+
overlayRoot.appendChild(scrim);
|
|
9
|
+
// Create modal container
|
|
10
|
+
const modal = document.createElement('div');
|
|
11
|
+
modal.className = `syntro-modal syntro-modal-${(_b = opts.size) !== null && _b !== void 0 ? _b : 'md'}`;
|
|
12
|
+
modal.setAttribute('role', 'dialog');
|
|
13
|
+
modal.setAttribute('aria-modal', 'true');
|
|
14
|
+
// Sanitize HTML to prevent XSS
|
|
15
|
+
modal.innerHTML = sanitizeWithFallback(opts.html);
|
|
16
|
+
overlayRoot.appendChild(modal);
|
|
17
|
+
// Handle action button clicks
|
|
18
|
+
const actionBtns = modal.querySelectorAll('[data-syntro-action]');
|
|
19
|
+
const actionHandler = (e) => {
|
|
20
|
+
const btn = e.currentTarget;
|
|
21
|
+
const actionId = btn.getAttribute('data-syntro-action');
|
|
22
|
+
if (actionId && opts.onAction) {
|
|
23
|
+
opts.onAction(actionId);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
actionBtns.forEach(btn => btn.addEventListener('click', actionHandler));
|
|
27
|
+
// Handle escape key
|
|
28
|
+
const onKey = (e) => {
|
|
29
|
+
if (e.key === 'Escape')
|
|
30
|
+
handle.destroy();
|
|
31
|
+
};
|
|
32
|
+
window.addEventListener('keydown', onKey);
|
|
33
|
+
// Handle click outside (on scrim)
|
|
34
|
+
const onScrimClick = () => handle.destroy();
|
|
35
|
+
scrim.addEventListener('click', onScrimClick);
|
|
36
|
+
// Blocking mode - make siblings inert
|
|
37
|
+
let originalInert = [];
|
|
38
|
+
if (opts.blocking) {
|
|
39
|
+
Array.from(document.body.children).forEach((el) => {
|
|
40
|
+
if (el !== overlayRoot && el.getAttribute('inert') === null) {
|
|
41
|
+
el.setAttribute('inert', '');
|
|
42
|
+
originalInert.push(el);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
// Focus first focusable element
|
|
47
|
+
const focusableEls = modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
48
|
+
if (focusableEls.length > 0) {
|
|
49
|
+
requestAnimationFrame(() => focusableEls[0].focus());
|
|
50
|
+
}
|
|
51
|
+
// Fade in
|
|
52
|
+
requestAnimationFrame(() => {
|
|
53
|
+
var _a;
|
|
54
|
+
scrim.style.opacity = String((_a = opts.scrimOpacity) !== null && _a !== void 0 ? _a : 0.6);
|
|
55
|
+
modal.style.opacity = '1';
|
|
56
|
+
modal.style.transform = 'translate(-50%, -50%) scale(1)';
|
|
57
|
+
});
|
|
58
|
+
const handle = {
|
|
59
|
+
el: modal,
|
|
60
|
+
destroy() {
|
|
61
|
+
window.removeEventListener('keydown', onKey);
|
|
62
|
+
scrim.removeEventListener('click', onScrimClick);
|
|
63
|
+
actionBtns.forEach(btn => btn.removeEventListener('click', actionHandler));
|
|
64
|
+
// Restore inert state
|
|
65
|
+
originalInert.forEach(el => el.removeAttribute('inert'));
|
|
66
|
+
// Fade out then remove
|
|
67
|
+
modal.style.opacity = '0';
|
|
68
|
+
modal.style.transform = 'translate(-50%, -50%) scale(0.95)';
|
|
69
|
+
scrim.style.opacity = '0';
|
|
70
|
+
setTimeout(() => {
|
|
71
|
+
modal.remove();
|
|
72
|
+
scrim.remove();
|
|
73
|
+
}, 200);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
return handle;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../../src/overlays/runtime/overlay/modal.ts"],"names":[],"mappings":"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"}
|