@syntrologie/runtime-sdk 2.13.0 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/schema.d.ts +776 -776
- package/dist/actions/schema.js +3 -3
- package/dist/{chunk-L6RJMBR2.js → chunk-77TNZ66J.js} +3 -3
- package/dist/{chunk-XDYJ64IN.js → chunk-IR6UOR63.js} +4 -4
- package/dist/chunk-IR6UOR63.js.map +7 -0
- package/dist/{chunk-GF364MMB.js → chunk-JCDCANR7.js} +157 -64
- package/dist/chunk-JCDCANR7.js.map +7 -0
- package/dist/chunk-YLLWLUQX.js +241 -0
- package/dist/chunk-YLLWLUQX.js.map +7 -0
- package/dist/components/ShadowCanvasOverlay.d.ts +1 -2
- package/dist/config/schema.d.ts +147 -136
- package/dist/config/schema.js +2 -2
- package/dist/decisions/schema.d.ts +47 -47
- package/dist/decisions/schema.js +1 -1
- package/dist/fetchers/experimentsFetcher.d.ts +3 -3
- package/dist/fetchers/mergeConfigs.d.ts +7 -7
- package/dist/index.js +4 -4
- package/dist/react.js +4 -4
- package/dist/smart-canvas.esm.js +42 -42
- package/dist/smart-canvas.esm.js.map +3 -3
- package/dist/smart-canvas.js +219 -103
- package/dist/smart-canvas.js.map +2 -2
- package/dist/smart-canvas.min.js +40 -40
- package/dist/smart-canvas.min.js.map +3 -3
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/schema/canvas-config.schema.json +2347 -11396
- package/dist/chunk-BU4Z6PD7.js +0 -218
- package/dist/chunk-BU4Z6PD7.js.map +0 -7
- package/dist/chunk-GF364MMB.js.map +0 -7
- package/dist/chunk-XDYJ64IN.js.map +0 -7
- /package/dist/{chunk-L6RJMBR2.js.map → chunk-77TNZ66J.js.map} +0 -0
package/dist/actions/schema.js
CHANGED
|
@@ -31,9 +31,9 @@ import {
|
|
|
31
31
|
WaitZ,
|
|
32
32
|
WidgetConfigZ,
|
|
33
33
|
coreActionStepSchemas
|
|
34
|
-
} from "../chunk-
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-
|
|
34
|
+
} from "../chunk-77TNZ66J.js";
|
|
35
|
+
import "../chunk-IR6UOR63.js";
|
|
36
|
+
import "../chunk-YLLWLUQX.js";
|
|
37
37
|
export {
|
|
38
38
|
AddClassZ,
|
|
39
39
|
AnchorIdZ,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NotificationDeepLinkZ
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IR6UOR63.js";
|
|
4
4
|
import {
|
|
5
5
|
TriggerWhenZ
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YLLWLUQX.js";
|
|
7
7
|
|
|
8
8
|
// src/actions/schema.ts
|
|
9
9
|
import { z } from "zod";
|
|
@@ -249,4 +249,4 @@ export {
|
|
|
249
249
|
TourZ,
|
|
250
250
|
coreActionStepSchemas
|
|
251
251
|
};
|
|
252
|
-
//# sourceMappingURL=chunk-
|
|
252
|
+
//# sourceMappingURL=chunk-77TNZ66J.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ActivationConfigZ,
|
|
3
3
|
ConditionZ
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YLLWLUQX.js";
|
|
5
5
|
|
|
6
6
|
// src/config/schema.ts
|
|
7
7
|
import { z } from "zod";
|
|
@@ -46,7 +46,8 @@ var LauncherElementConfigZ = z.object({
|
|
|
46
46
|
color: z.string().optional(),
|
|
47
47
|
size: z.string().optional(),
|
|
48
48
|
shadow: z.string().optional(),
|
|
49
|
-
borderRadius: z.string().optional()
|
|
49
|
+
borderRadius: z.string().optional(),
|
|
50
|
+
icon: z.string().optional()
|
|
50
51
|
});
|
|
51
52
|
var TileElementConfigZ = z.object({
|
|
52
53
|
background: z.string().optional(),
|
|
@@ -126,7 +127,6 @@ var CanvasThemeConfigZ = z.object({
|
|
|
126
127
|
var LauncherConfigZ = z.object({
|
|
127
128
|
enabled: z.boolean().optional(),
|
|
128
129
|
label: z.string().optional(),
|
|
129
|
-
icon: z.string().optional(),
|
|
130
130
|
position: z.string().optional(),
|
|
131
131
|
animate: z.boolean().optional(),
|
|
132
132
|
animationStyle: z.enum(["pulse", "bounce", "glow"]).optional(),
|
|
@@ -175,4 +175,4 @@ export {
|
|
|
175
175
|
CanvasConfigResponseZ,
|
|
176
176
|
configSchemas
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=chunk-
|
|
178
|
+
//# sourceMappingURL=chunk-IR6UOR63.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/config/schema.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Zod schemas for canvas configuration types.\n *\n * Single source of truth for tile, theme, launcher, and top-level\n * CanvasConfigResponse shapes. These schemas are converted to JSON Schema\n * during build and merged into the unified canvas-config.schema.json.\n *\n * Design decisions:\n * - `.strict()` on top-level objects \u2192 `additionalProperties: false` in JSON Schema\n * - Element sub-schemas (canvas, tile, etc.) are NOT strict to allow future expansion\n */\n\nimport { z } from 'zod';\nimport { ActivationConfigZ, ConditionZ } from '../decisions/schema';\n\n// ============================================================================\n// Tile Notification Sub-Types\n// ============================================================================\n\nconst NotificationDeepLinkZ = z\n .object({\n tileId: z.string(),\n itemId: z.string().optional(),\n })\n .strict();\n\nconst TileNotificationRuleZ = z\n .object({\n on: z.string(),\n title: z.string(),\n body: z.string().optional(),\n icon: z.string().optional(),\n ttl: z.number().optional(),\n cooldown: z.number().optional(),\n deepLink: NotificationDeepLinkZ.optional(),\n })\n .strict();\n\n// ============================================================================\n// Tile\n// ============================================================================\n\nexport const TileZ = z\n .object({\n id: z.string(),\n title: z.string().optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n priority: z.number().optional(),\n widget: z.string(),\n props: z.record(z.unknown()).optional(),\n activation: ActivationConfigZ.optional(),\n notifications: z.array(TileNotificationRuleZ).optional(),\n })\n .strict();\n\n// ============================================================================\n// Theme Config \u2014 Element Sub-Schemas\n// ============================================================================\n\nexport const CanvasElementConfigZ = z.object({\n position: z.enum(['left', 'right']).optional(),\n layout: z.enum(['overlay', 'push']).optional(),\n background: z.string().optional(),\n blur: z.string().optional(),\n border: z.string().optional(),\n width: z.string().optional(),\n transitionDuration: z.string().optional(),\n transitionEasing: z.string().optional(),\n transitionFade: z.string().optional(),\n});\n\nexport const LauncherElementConfigZ = z.object({\n background: z.string().optional(),\n backgroundHover: z.string().optional(),\n color: z.string().optional(),\n size: z.string().optional(),\n shadow: z.string().optional(),\n borderRadius: z.string().optional(),\n icon: z.string().optional(),\n});\n\nexport const TileElementConfigZ = z.object({\n background: z.string().optional(),\n backgroundHover: z.string().optional(),\n border: z.string().optional(),\n borderRadius: z.string().optional(),\n shadow: z.string().optional(),\n titleColor: z.string().optional(),\n textColor: z.string().optional(),\n iconBackground: z.string().optional(),\n iconShadow: z.string().optional(),\n headerPadding: z.string().optional(),\n bodyPadding: z.string().optional(),\n gap: z.string().optional(),\n});\n\nexport const OverlayElementConfigZ = z.object({\n background: z.string().optional(),\n textColor: z.string().optional(),\n titleColor: z.string().optional(),\n arrowColor: z.string().optional(),\n arrowSize: z.string().optional(),\n border: z.string().optional(),\n borderRadius: z.string().optional(),\n scrimOpacity: z.string().optional(),\n highlightRing: z.string().optional(),\n});\n\nexport const NotificationElementConfigZ = z.object({\n background: z.string().optional(),\n textColor: z.string().optional(),\n textSecondaryColor: z.string().optional(),\n border: z.string().optional(),\n borderRadius: z.string().optional(),\n successColor: z.string().optional(),\n warningColor: z.string().optional(),\n errorColor: z.string().optional(),\n iconBackground: z.string().optional(),\n progressGradient: z.string().optional(),\n});\n\nexport const ContentElementConfigZ = z.object({\n background: z.string().optional(),\n backgroundHover: z.string().optional(),\n border: z.string().optional(),\n borderRadius: z.string().optional(),\n textColor: z.string().optional(),\n textSecondaryColor: z.string().optional(),\n // Accordion layout\n itemDivider: z.string().optional(),\n itemGap: z.string().optional(),\n itemPadding: z.string().optional(),\n itemFontSize: z.string().optional(),\n // Expanded content\n bodyPadding: z.string().optional(),\n bodyFontSize: z.string().optional(),\n // Category headers\n categoryPadding: z.string().optional(),\n categoryGap: z.string().optional(),\n categoryFontSize: z.string().optional(),\n // Search\n searchBackground: z.string().optional(),\n searchColor: z.string().optional(),\n // Chevron\n chevronColor: z.string().optional(),\n});\n\n// ============================================================================\n// Theme Config \u2014 Top-Level\n// ============================================================================\n\nexport const CanvasThemeConfigZ = z\n .object({\n mode: z.enum(['dark', 'light']).optional(),\n fontFamily: z.string().optional(),\n colorPrimary: z.string().optional(),\n colorPrimaryHover: z.string().optional(),\n borderRadius: z.string().optional(),\n canvas: CanvasElementConfigZ.optional(),\n launcher: LauncherElementConfigZ.optional(),\n tile: TileElementConfigZ.optional(),\n overlay: OverlayElementConfigZ.optional(),\n notification: NotificationElementConfigZ.optional(),\n content: ContentElementConfigZ.optional(),\n })\n .strict();\n\n// ============================================================================\n// Launcher Config\n// ============================================================================\n\nexport const LauncherConfigZ = z\n .object({\n enabled: z.boolean().optional(),\n label: z.string().optional(),\n position: z.string().optional(),\n animate: z.boolean().optional(),\n animationStyle: z.enum(['pulse', 'bounce', 'glow']).optional(),\n notificationCount: z.number().optional(),\n })\n .strict();\n\n// ============================================================================\n// Canvas Config Response (top-level)\n// ============================================================================\n\nexport const CanvasConfigResponseZ = z\n .object({\n schemaVersion: z.string().optional(),\n fetchedAt: z.string().datetime(),\n configVersion: z.string().optional(),\n canvasTitle: z.string().optional(),\n tiles: z.array(TileZ),\n actions: z.array(z.any()),\n theme: CanvasThemeConfigZ.optional(),\n launcher: LauncherConfigZ.optional(),\n meta: z\n .object({\n verificationSteps: z\n .array(\n z.union([\n z.string(),\n z.object({\n text: z.string(),\n check: ConditionZ.optional(),\n }),\n ])\n )\n .optional(),\n })\n .passthrough()\n .optional(),\n })\n .strict();\n\n// ============================================================================\n// Export: Array for unified schema generation\n// ============================================================================\n\n/**\n * Config schemas for unified JSON Schema generation.\n * The generator imports this array and converts each to a JSON Schema $def.\n */\nexport const configSchemas = [\n { defName: 'tile', schema: TileZ },\n { defName: 'themeConfig', schema: CanvasThemeConfigZ },\n { defName: 'launcherConfig', schema: LauncherConfigZ },\n { defName: 'canvasConfigResponse', schema: CanvasConfigResponseZ },\n];\n\n// ============================================================================\n// Named Exports\n// ============================================================================\n\nexport { NotificationDeepLinkZ, TileNotificationRuleZ };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
__privateGet,
|
|
4
4
|
__privateSet,
|
|
5
5
|
__publicField
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YLLWLUQX.js";
|
|
7
7
|
|
|
8
8
|
// ../adaptives/adaptive-content/dist/reconciliation-guard.js
|
|
9
9
|
function guardAgainstReconciliation(container, anchor, reinsertFn, opts) {
|
|
@@ -3456,14 +3456,20 @@ function getAntiFlickerSnippet(config = {}) {
|
|
|
3456
3456
|
}
|
|
3457
3457
|
|
|
3458
3458
|
// src/version.ts
|
|
3459
|
-
var SDK_VERSION = "2.
|
|
3459
|
+
var SDK_VERSION = "2.14.0";
|
|
3460
3460
|
|
|
3461
3461
|
// src/types.ts
|
|
3462
3462
|
var SDK_SCHEMA_VERSION = "2.0";
|
|
3463
3463
|
|
|
3464
3464
|
// src/fetchers/mergeConfigs.ts
|
|
3465
|
-
function resolveVariantConfigs(client, keys,
|
|
3466
|
-
|
|
3465
|
+
function resolveVariantConfigs(client, keys, strategy = "merge") {
|
|
3466
|
+
if (strategy === "first-match") {
|
|
3467
|
+
return resolveFirstMatch(client, keys);
|
|
3468
|
+
}
|
|
3469
|
+
return resolveMerge(client, keys);
|
|
3470
|
+
}
|
|
3471
|
+
function resolveFirstMatch(client, keys) {
|
|
3472
|
+
var _a2;
|
|
3467
3473
|
for (const key of keys) {
|
|
3468
3474
|
const value = (_a2 = client.getFeatureValue) == null ? void 0 : _a2.call(client, key, null);
|
|
3469
3475
|
if (!value || typeof value !== "object") continue;
|
|
@@ -3471,20 +3477,60 @@ function resolveVariantConfigs(client, keys, _strategy = "first-match") {
|
|
|
3471
3477
|
const hasTiles = variant.tiles && variant.tiles.length > 0;
|
|
3472
3478
|
const hasActions = variant.actions && variant.actions.length > 0;
|
|
3473
3479
|
if (hasTiles || hasActions) {
|
|
3474
|
-
return
|
|
3475
|
-
tiles: (_b = variant.tiles) != null ? _b : [],
|
|
3476
|
-
actions: (_c = variant.actions) != null ? _c : [],
|
|
3477
|
-
fetchedAt: (_d = variant.fetchedAt) != null ? _d : (/* @__PURE__ */ new Date()).toISOString(),
|
|
3478
|
-
...variant.schemaVersion && { schemaVersion: variant.schemaVersion },
|
|
3479
|
-
...variant.configVersion && { configVersion: variant.configVersion },
|
|
3480
|
-
...variant.canvasTitle && { canvasTitle: variant.canvasTitle },
|
|
3481
|
-
...variant.theme && { theme: variant.theme },
|
|
3482
|
-
...variant.launcher && { launcher: variant.launcher }
|
|
3483
|
-
};
|
|
3480
|
+
return buildConfig([variant]);
|
|
3484
3481
|
}
|
|
3485
3482
|
}
|
|
3486
3483
|
return null;
|
|
3487
3484
|
}
|
|
3485
|
+
function resolveMerge(client, keys) {
|
|
3486
|
+
var _a2;
|
|
3487
|
+
const variants = [];
|
|
3488
|
+
for (const key of keys) {
|
|
3489
|
+
const value = (_a2 = client.getFeatureValue) == null ? void 0 : _a2.call(client, key, null);
|
|
3490
|
+
if (!value || typeof value !== "object") continue;
|
|
3491
|
+
const variant = value;
|
|
3492
|
+
const hasTiles = variant.tiles && variant.tiles.length > 0;
|
|
3493
|
+
const hasActions = variant.actions && variant.actions.length > 0;
|
|
3494
|
+
if (hasTiles || hasActions) {
|
|
3495
|
+
variants.push(variant);
|
|
3496
|
+
}
|
|
3497
|
+
}
|
|
3498
|
+
if (variants.length === 0) return null;
|
|
3499
|
+
return buildConfig(variants);
|
|
3500
|
+
}
|
|
3501
|
+
function buildConfig(variants) {
|
|
3502
|
+
const allTiles = [];
|
|
3503
|
+
const allActions = [];
|
|
3504
|
+
let fetchedAt;
|
|
3505
|
+
let schemaVersion;
|
|
3506
|
+
let configVersion;
|
|
3507
|
+
let canvasTitle;
|
|
3508
|
+
let theme;
|
|
3509
|
+
let launcher;
|
|
3510
|
+
let meta;
|
|
3511
|
+
for (const variant of variants) {
|
|
3512
|
+
if (variant.tiles) allTiles.push(...variant.tiles);
|
|
3513
|
+
if (variant.actions) allActions.push(...variant.actions);
|
|
3514
|
+
fetchedAt != null ? fetchedAt : fetchedAt = variant.fetchedAt;
|
|
3515
|
+
schemaVersion != null ? schemaVersion : schemaVersion = variant.schemaVersion;
|
|
3516
|
+
configVersion != null ? configVersion : configVersion = variant.configVersion;
|
|
3517
|
+
canvasTitle != null ? canvasTitle : canvasTitle = variant.canvasTitle;
|
|
3518
|
+
theme != null ? theme : theme = variant.theme;
|
|
3519
|
+
launcher != null ? launcher : launcher = variant.launcher;
|
|
3520
|
+
meta != null ? meta : meta = variant.meta;
|
|
3521
|
+
}
|
|
3522
|
+
return {
|
|
3523
|
+
tiles: allTiles,
|
|
3524
|
+
actions: allActions,
|
|
3525
|
+
fetchedAt: fetchedAt != null ? fetchedAt : (/* @__PURE__ */ new Date()).toISOString(),
|
|
3526
|
+
...schemaVersion && { schemaVersion },
|
|
3527
|
+
...configVersion && { configVersion },
|
|
3528
|
+
...canvasTitle && { canvasTitle },
|
|
3529
|
+
...theme && { theme },
|
|
3530
|
+
...launcher && { launcher },
|
|
3531
|
+
...meta && { meta }
|
|
3532
|
+
};
|
|
3533
|
+
}
|
|
3488
3534
|
|
|
3489
3535
|
// src/logger.ts
|
|
3490
3536
|
var debugEnabled = false;
|
|
@@ -3931,6 +3977,36 @@ function getEventName(phEvent) {
|
|
|
3931
3977
|
return eventName.replace("$", "posthog.");
|
|
3932
3978
|
}
|
|
3933
3979
|
var INTERACTIVE_TAGS = /* @__PURE__ */ new Set(["a", "button", "input", "select", "textarea"]);
|
|
3980
|
+
function parseElementsChain(chain) {
|
|
3981
|
+
if (!chain)
|
|
3982
|
+
return void 0;
|
|
3983
|
+
return chain.split(";").map((segment) => {
|
|
3984
|
+
const el = {};
|
|
3985
|
+
const colonIdx = segment.indexOf(":");
|
|
3986
|
+
const tagPart = colonIdx >= 0 ? segment.slice(0, colonIdx) : segment;
|
|
3987
|
+
const attrPart = colonIdx >= 0 ? segment.slice(colonIdx + 1) : "";
|
|
3988
|
+
const dotIdx = tagPart.indexOf(".");
|
|
3989
|
+
if (dotIdx >= 0) {
|
|
3990
|
+
el.tag_name = tagPart.slice(0, dotIdx);
|
|
3991
|
+
el.attr__class = tagPart.slice(dotIdx + 1).replace(/\./g, " ");
|
|
3992
|
+
} else {
|
|
3993
|
+
el.tag_name = tagPart;
|
|
3994
|
+
}
|
|
3995
|
+
const attrRegex = /([\w$]+)="([^"]*)"/g;
|
|
3996
|
+
let match;
|
|
3997
|
+
while ((match = attrRegex.exec(attrPart)) !== null) {
|
|
3998
|
+
const [, key, value] = match;
|
|
3999
|
+
if (key === "nth-child" || key === "nth-of-type")
|
|
4000
|
+
continue;
|
|
4001
|
+
el[key] = value;
|
|
4002
|
+
}
|
|
4003
|
+
if (el.text) {
|
|
4004
|
+
el.$el_text = el.text;
|
|
4005
|
+
delete el.text;
|
|
4006
|
+
}
|
|
4007
|
+
return el;
|
|
4008
|
+
});
|
|
4009
|
+
}
|
|
3934
4010
|
function resolveInteractiveTag(elements, directTag) {
|
|
3935
4011
|
if (directTag && INTERACTIVE_TAGS.has(directTag))
|
|
3936
4012
|
return directTag;
|
|
@@ -3944,17 +4020,20 @@ function resolveInteractiveTag(elements, directTag) {
|
|
|
3944
4020
|
return directTag;
|
|
3945
4021
|
}
|
|
3946
4022
|
function extractProps(phEvent) {
|
|
3947
|
-
var _a2, _b;
|
|
4023
|
+
var _a2, _b, _c;
|
|
3948
4024
|
const props = {};
|
|
3949
4025
|
const phProps = phEvent.properties || {};
|
|
3950
|
-
const elements = phProps.$elements;
|
|
3951
|
-
const directTag = (
|
|
4026
|
+
const elements = (_a2 = phProps.$elements) != null ? _a2 : typeof phProps.$elements_chain === "string" ? parseElementsChain(phProps.$elements_chain) : void 0;
|
|
4027
|
+
const directTag = (_c = phProps.$tag_name) != null ? _c : (_b = elements == null ? void 0 : elements[0]) == null ? void 0 : _b.tag_name;
|
|
3952
4028
|
const isClickEvent = phEvent.event === "$autocapture" || phEvent.event === "$click";
|
|
3953
4029
|
props.tagName = isClickEvent ? resolveInteractiveTag(elements, directTag) : directTag;
|
|
3954
4030
|
if (phProps.$el_text)
|
|
3955
4031
|
props.elementText = phProps.$el_text;
|
|
3956
4032
|
if (elements)
|
|
3957
4033
|
props.elements = elements;
|
|
4034
|
+
if (isClickEvent && !elements) {
|
|
4035
|
+
console.warn(`[PostHogNormalizer] $autocapture click has no element chain. PostHog may have changed wire format. Properties: $elements=${!!phProps.$elements}, $elements_chain=${typeof phProps.$elements_chain}`);
|
|
4036
|
+
}
|
|
3958
4037
|
if (phProps.$current_url)
|
|
3959
4038
|
props.url = phProps.$current_url;
|
|
3960
4039
|
if (phProps.$pathname)
|
|
@@ -5695,7 +5774,6 @@ function ShadowCanvasOverlay({
|
|
|
5695
5774
|
onToggle,
|
|
5696
5775
|
telemetry,
|
|
5697
5776
|
launcherLabel: _launcherLabel = "Adaptives",
|
|
5698
|
-
launcherIcon,
|
|
5699
5777
|
launcherAnimate = false,
|
|
5700
5778
|
launcherAnimationStyle: _launcherAnimationStyle = "pulse",
|
|
5701
5779
|
notificationCount: _notificationCount,
|
|
@@ -5706,7 +5784,7 @@ function ShadowCanvasOverlay({
|
|
|
5706
5784
|
canvasTitle,
|
|
5707
5785
|
displayMode = "standard"
|
|
5708
5786
|
}) {
|
|
5709
|
-
var _a2, _b, _c, _d;
|
|
5787
|
+
var _a2, _b, _c, _d, _e;
|
|
5710
5788
|
const [mounted, setMounted] = useState5(false);
|
|
5711
5789
|
const [launcherPos, setLauncherPos] = useState5(null);
|
|
5712
5790
|
const dragRef = useRef5(null);
|
|
@@ -5839,7 +5917,7 @@ function ShadowCanvasOverlay({
|
|
|
5839
5917
|
}
|
|
5840
5918
|
}, []);
|
|
5841
5919
|
const onLauncherPointerUp = useCallback4(
|
|
5842
|
-
(
|
|
5920
|
+
(_e2) => {
|
|
5843
5921
|
const drag = dragRef.current;
|
|
5844
5922
|
dragRef.current = null;
|
|
5845
5923
|
if (drag && !drag.dragged) {
|
|
@@ -6107,10 +6185,10 @@ function ShadowCanvasOverlay({
|
|
|
6107
6185
|
/* @__PURE__ */ jsx8("path", { d: "M6 6l12 12" })
|
|
6108
6186
|
]
|
|
6109
6187
|
}
|
|
6110
|
-
) :
|
|
6188
|
+
) : ((_e = config.launcher) == null ? void 0 : _e.icon) ? /* @__PURE__ */ jsx8(
|
|
6111
6189
|
"img",
|
|
6112
6190
|
{
|
|
6113
|
-
src:
|
|
6191
|
+
src: config.launcher.icon,
|
|
6114
6192
|
alt: "",
|
|
6115
6193
|
"aria-hidden": "true",
|
|
6116
6194
|
style: {
|
|
@@ -6405,7 +6483,7 @@ function SmartCanvasAppInner({
|
|
|
6405
6483
|
initialBatchHandle,
|
|
6406
6484
|
workspaceTheme
|
|
6407
6485
|
}) {
|
|
6408
|
-
var _a2, _b, _c, _d, _e, _f
|
|
6486
|
+
var _a2, _b, _c, _d, _e, _f;
|
|
6409
6487
|
const [open, setOpen] = useState7(controller.getState().open);
|
|
6410
6488
|
const pageContext = usePageContext();
|
|
6411
6489
|
const [localUrl, setLocalUrl] = useState7(
|
|
@@ -6461,6 +6539,7 @@ function SmartCanvasAppInner({
|
|
|
6461
6539
|
const batchHandleRef = useRef7(initialBatchHandle != null ? initialBatchHandle : null);
|
|
6462
6540
|
const adoptedInitialRef = useRef7(!!initialBatchHandle);
|
|
6463
6541
|
const runVersionRef = useRef7(0);
|
|
6542
|
+
const pendingRevertRef = useRef7(null);
|
|
6464
6543
|
useEffect9(() => {
|
|
6465
6544
|
if (!(runtime3 == null ? void 0 : runtime3.actions)) return;
|
|
6466
6545
|
if (adoptedInitialRef.current) {
|
|
@@ -6472,6 +6551,10 @@ function SmartCanvasAppInner({
|
|
|
6472
6551
|
const version = ++runVersionRef.current;
|
|
6473
6552
|
const stale = () => version !== runVersionRef.current;
|
|
6474
6553
|
const run = async () => {
|
|
6554
|
+
if (pendingRevertRef.current) {
|
|
6555
|
+
await pendingRevertRef.current;
|
|
6556
|
+
pendingRevertRef.current = null;
|
|
6557
|
+
}
|
|
6475
6558
|
if (batchHandleRef.current) {
|
|
6476
6559
|
try {
|
|
6477
6560
|
await batchHandleRef.current.revertAll();
|
|
@@ -6499,7 +6582,7 @@ function SmartCanvasAppInner({
|
|
|
6499
6582
|
run();
|
|
6500
6583
|
return () => {
|
|
6501
6584
|
if (batchHandleRef.current) {
|
|
6502
|
-
batchHandleRef.current.revertAll().catch((err) => {
|
|
6585
|
+
pendingRevertRef.current = batchHandleRef.current.revertAll().catch((err) => {
|
|
6503
6586
|
console.error("[SmartCanvasApp] Failed to revert actions on cleanup:", err);
|
|
6504
6587
|
});
|
|
6505
6588
|
batchHandleRef.current = null;
|
|
@@ -6530,10 +6613,9 @@ function SmartCanvasAppInner({
|
|
|
6530
6613
|
canvasTitle: configState.canvasTitle,
|
|
6531
6614
|
telemetry,
|
|
6532
6615
|
launcherLabel: launcherLabel != null ? launcherLabel : (_b = configState.launcher) == null ? void 0 : _b.label,
|
|
6533
|
-
|
|
6534
|
-
|
|
6535
|
-
|
|
6536
|
-
notificationCount: (_g = (_f = configState.launcher) == null ? void 0 : _f.notificationCount) != null ? _g : configState.tiles.length,
|
|
6616
|
+
launcherAnimate: (_c = configState.launcher) == null ? void 0 : _c.animate,
|
|
6617
|
+
launcherAnimationStyle: (_d = configState.launcher) == null ? void 0 : _d.animationStyle,
|
|
6618
|
+
notificationCount: (_f = (_e = configState.launcher) == null ? void 0 : _e.notificationCount) != null ? _f : configState.tiles.length,
|
|
6537
6619
|
footerSlot,
|
|
6538
6620
|
isOpen: open,
|
|
6539
6621
|
onToggle: () => controller.toggle(),
|
|
@@ -7733,33 +7815,7 @@ var PostHogAdapter = class {
|
|
|
7733
7815
|
// Capture performance metrics
|
|
7734
7816
|
capture_performance: true,
|
|
7735
7817
|
// Enable web vitals
|
|
7736
|
-
enable_recording_console_log: true
|
|
7737
|
-
// Bootstrap callback for when flags are loaded
|
|
7738
|
-
loaded: (ph) => {
|
|
7739
|
-
if (enableFeatureFlags && this.featureFlagsCallback) {
|
|
7740
|
-
ph.onFeatureFlags(() => {
|
|
7741
|
-
const allFlags = this.getAllFeatureFlags();
|
|
7742
|
-
if (allFlags && this.featureFlagsCallback) {
|
|
7743
|
-
this.featureFlagsCallback(allFlags);
|
|
7744
|
-
}
|
|
7745
|
-
});
|
|
7746
|
-
const existingFlags = this.getAllFeatureFlags();
|
|
7747
|
-
if (existingFlags && Object.keys(existingFlags).length > 0) {
|
|
7748
|
-
this.featureFlagsCallback(existingFlags);
|
|
7749
|
-
}
|
|
7750
|
-
}
|
|
7751
|
-
if (this.captureCallback) {
|
|
7752
|
-
ph.on("eventCaptured", (...args) => {
|
|
7753
|
-
var _a3;
|
|
7754
|
-
const data = args[0];
|
|
7755
|
-
const eventName = typeof data === "string" ? data : data == null ? void 0 : data.event;
|
|
7756
|
-
const properties = typeof data === "string" ? void 0 : data == null ? void 0 : data.properties;
|
|
7757
|
-
if (typeof eventName === "string") {
|
|
7758
|
-
(_a3 = this.captureCallback) == null ? void 0 : _a3.call(this, eventName, properties);
|
|
7759
|
-
}
|
|
7760
|
-
});
|
|
7761
|
-
}
|
|
7762
|
-
}
|
|
7818
|
+
enable_recording_console_log: true
|
|
7763
7819
|
};
|
|
7764
7820
|
const result = posthog.init(
|
|
7765
7821
|
options.apiKey,
|
|
@@ -7769,6 +7825,29 @@ var PostHogAdapter = class {
|
|
|
7769
7825
|
if (result) {
|
|
7770
7826
|
this.client = result;
|
|
7771
7827
|
}
|
|
7828
|
+
if (this.captureCallback && this.client) {
|
|
7829
|
+
this.client.on("eventCaptured", (...args) => {
|
|
7830
|
+
var _a3;
|
|
7831
|
+
const data = args[0];
|
|
7832
|
+
const eventName = typeof data === "string" ? data : data == null ? void 0 : data.event;
|
|
7833
|
+
const properties = typeof data === "string" ? void 0 : data == null ? void 0 : data.properties;
|
|
7834
|
+
if (typeof eventName === "string") {
|
|
7835
|
+
(_a3 = this.captureCallback) == null ? void 0 : _a3.call(this, eventName, properties);
|
|
7836
|
+
}
|
|
7837
|
+
});
|
|
7838
|
+
}
|
|
7839
|
+
if (enableFeatureFlags && this.featureFlagsCallback && this.client) {
|
|
7840
|
+
this.client.onFeatureFlags(() => {
|
|
7841
|
+
const allFlags = this.getAllFeatureFlags();
|
|
7842
|
+
if (allFlags && this.featureFlagsCallback) {
|
|
7843
|
+
this.featureFlagsCallback(allFlags);
|
|
7844
|
+
}
|
|
7845
|
+
});
|
|
7846
|
+
const existingFlags = this.getAllFeatureFlags();
|
|
7847
|
+
if (existingFlags && Object.keys(existingFlags).length > 0) {
|
|
7848
|
+
this.featureFlagsCallback(existingFlags);
|
|
7849
|
+
}
|
|
7850
|
+
}
|
|
7772
7851
|
if (this.rrwebCallback && this.client) {
|
|
7773
7852
|
this.setupRRWebIntercept();
|
|
7774
7853
|
}
|
|
@@ -9113,15 +9192,30 @@ function createActionEngine(options) {
|
|
|
9113
9192
|
const handles = [];
|
|
9114
9193
|
const appliedHandles = [];
|
|
9115
9194
|
try {
|
|
9116
|
-
|
|
9117
|
-
|
|
9118
|
-
|
|
9119
|
-
|
|
9195
|
+
const results = await Promise.allSettled(actions.map((action) => apply(action)));
|
|
9196
|
+
const errors = [];
|
|
9197
|
+
for (const result of results) {
|
|
9198
|
+
if (result.status === "fulfilled") {
|
|
9199
|
+
handles.push(result.value);
|
|
9200
|
+
appliedHandles.push(result.value);
|
|
9201
|
+
} else {
|
|
9202
|
+
errors.push(
|
|
9203
|
+
result.reason instanceof Error ? result.reason : new Error(String(result.reason))
|
|
9204
|
+
);
|
|
9205
|
+
}
|
|
9206
|
+
}
|
|
9207
|
+
if (errors.length > 0 && appliedHandles.length === 0) {
|
|
9208
|
+
throw errors[0];
|
|
9209
|
+
}
|
|
9210
|
+
if (errors.length > 0) {
|
|
9211
|
+
console.warn(
|
|
9212
|
+
`[ActionEngine] ${errors.length}/${actions.length} action(s) failed in batch:`,
|
|
9213
|
+
errors.map((e) => e.message).join("; ")
|
|
9214
|
+
);
|
|
9120
9215
|
}
|
|
9121
9216
|
} catch (error2) {
|
|
9122
9217
|
console.error(
|
|
9123
|
-
`[ActionEngine] Batch apply FAILED
|
|
9124
|
-
`Successfully applied: ${appliedHandles.length}. Rolling back...`,
|
|
9218
|
+
`[ActionEngine] Batch apply FAILED. Successfully applied: ${appliedHandles.length}. Rolling back...`,
|
|
9125
9219
|
error2
|
|
9126
9220
|
);
|
|
9127
9221
|
for (const handle of appliedHandles) {
|
|
@@ -11719,9 +11813,8 @@ var ExperimentsFetcher = class {
|
|
|
11719
11813
|
__publicField(this, "featureKey");
|
|
11720
11814
|
__publicField(this, "manifestKey");
|
|
11721
11815
|
__publicField(this, "variantFlagPrefix");
|
|
11722
|
-
var _a2;
|
|
11723
11816
|
this.client = options.client;
|
|
11724
|
-
this.featureKey =
|
|
11817
|
+
this.featureKey = options.featureKey;
|
|
11725
11818
|
this.manifestKey = options.manifestKey;
|
|
11726
11819
|
this.variantFlagPrefix = options.variantFlagPrefix;
|
|
11727
11820
|
}
|
|
@@ -12374,4 +12467,4 @@ export {
|
|
|
12374
12467
|
encodeToken,
|
|
12375
12468
|
Syntro
|
|
12376
12469
|
};
|
|
12377
|
-
//# sourceMappingURL=chunk-
|
|
12470
|
+
//# sourceMappingURL=chunk-JCDCANR7.js.map
|