@syntrologie/runtime-sdk 2.0.0 → 2.0.1-canary.1
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 +232 -138
- package/README.md +76 -57
- package/dist/RuntimeProvider.d.ts +6 -6
- package/dist/RuntimeProvider.js +2 -3
- package/dist/RuntimeProvider.js.map +1 -1
- package/dist/SmartCanvasApp.d.ts +8 -8
- package/dist/SmartCanvasApp.js +16 -18
- package/dist/SmartCanvasApp.js.map +1 -1
- package/dist/SmartCanvasElement.d.ts +5 -5
- package/dist/SmartCanvasElement.js +13 -13
- package/dist/SmartCanvasElement.js.map +1 -1
- package/dist/SmartCanvasPortal.d.ts +2 -2
- package/dist/SmartCanvasPortal.js +2 -2
- package/dist/actions/ActionEngine.d.ts +1 -1
- package/dist/actions/ActionEngine.js +24 -24
- package/dist/actions/ActionEngine.js.map +1 -1
- package/dist/actions/executors/index.d.ts +6 -6
- package/dist/actions/executors/index.js +22 -22
- package/dist/actions/executors/index.js.map +1 -1
- package/dist/actions/executors/tour.d.ts +1 -1
- package/dist/actions/executors/tour.js +19 -19
- package/dist/actions/executors/tour.js.map +1 -1
- package/dist/actions/index.d.ts +5 -5
- package/dist/actions/index.js +3 -3
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/types.d.ts +37 -37
- package/dist/actions/validation.d.ts +1 -1
- package/dist/actions/validation.js +195 -196
- package/dist/actions/validation.js.map +1 -1
- package/dist/antiFlicker.js +1 -1
- package/dist/api.d.ts +10 -10
- package/dist/api.js +11 -11
- package/dist/api.js.map +1 -1
- package/dist/apps/AppContext.d.ts +2 -2
- package/dist/apps/AppContext.js +1 -1
- package/dist/apps/AppContext.js.map +1 -1
- package/dist/apps/AppLoader.d.ts +2 -2
- package/dist/apps/AppLoader.js +24 -24
- package/dist/apps/AppLoader.js.map +1 -1
- package/dist/apps/AppRegistry.d.ts +2 -2
- package/dist/apps/AppRegistry.js +28 -28
- package/dist/apps/AppRegistry.js.map +1 -1
- package/dist/apps/adaptive-chatbot/index.js +7 -0
- package/dist/apps/adaptive-chatbot/index.js.map +7 -0
- package/dist/apps/examples/gamification-app.example.d.ts +3 -3
- package/dist/apps/examples/gamification-app.example.js +94 -94
- package/dist/apps/examples/gamification-app.example.js.map +1 -1
- package/dist/apps/faq/index.js.map +3 -3
- package/dist/apps/gamification/index.js.map +3 -3
- package/dist/apps/index.d.ts +10 -10
- package/dist/apps/index.js +6 -6
- package/dist/apps/nav/index.js.map +3 -3
- package/dist/apps/types.d.ts +10 -10
- package/dist/blocks/data/ComparisonBlock.d.ts +1 -1
- package/dist/blocks/data/ComparisonBlock.js +40 -40
- package/dist/blocks/data/ComparisonBlock.js.map +1 -1
- package/dist/blocks/data/StatsBlock.d.ts +1 -1
- package/dist/blocks/data/StatsBlock.js +41 -41
- package/dist/blocks/data/StatsBlock.js.map +1 -1
- package/dist/blocks/data/index.d.ts +2 -2
- package/dist/blocks/data/index.js +2 -2
- package/dist/blocks/index.d.ts +5 -5
- package/dist/blocks/index.js +29 -29
- package/dist/blocks/index.js.map +1 -1
- package/dist/blocks/interactive/ChecklistBlock.d.ts +1 -1
- package/dist/blocks/interactive/ChecklistBlock.js +60 -60
- package/dist/blocks/interactive/ChecklistBlock.js.map +1 -1
- package/dist/blocks/interactive/RatingBlock.d.ts +1 -1
- package/dist/blocks/interactive/RatingBlock.js +75 -65
- package/dist/blocks/interactive/RatingBlock.js.map +1 -1
- package/dist/blocks/interactive/index.d.ts +2 -2
- package/dist/blocks/interactive/index.js +2 -2
- package/dist/blocks/notification/NotificationBlock.d.ts +2 -2
- package/dist/blocks/notification/NotificationBlock.js +67 -63
- package/dist/blocks/notification/NotificationBlock.js.map +1 -1
- package/dist/blocks/notification/index.d.ts +1 -1
- package/dist/blocks/notification/index.js +1 -1
- package/dist/bootstrap.d.ts +10 -10
- package/dist/bootstrap.js +54 -40
- package/dist/bootstrap.js.map +1 -1
- package/dist/components/ShadowCanvasOverlay.d.ts +6 -6
- package/dist/components/ShadowCanvasOverlay.js +117 -107
- package/dist/components/ShadowCanvasOverlay.js.map +1 -1
- package/dist/components/TileCard.d.ts +5 -5
- package/dist/components/TileCard.js +174 -143
- package/dist/components/TileCard.js.map +1 -1
- package/dist/components/TileWheel.d.ts +3 -3
- package/dist/components/TileWheel.js +7 -7
- package/dist/components/TileWheel.js.map +1 -1
- package/dist/configFetcher.d.ts +2 -2
- package/dist/configFetcher.js +10 -7
- package/dist/configFetcher.js.map +1 -1
- package/dist/context/ContextManager.d.ts +3 -3
- package/dist/context/ContextManager.js +15 -15
- package/dist/context/ContextManager.js.map +1 -1
- package/dist/context/index.d.ts +4 -4
- package/dist/context/index.js +3 -3
- package/dist/context/schema.d.ts +1 -1
- package/dist/context/schema.js +1 -1
- package/dist/decisions/engine.d.ts +5 -5
- package/dist/decisions/engine.js +13 -13
- package/dist/decisions/index.d.ts +6 -6
- package/dist/decisions/index.js +5 -5
- package/dist/decisions/schema.d.ts +1 -1
- package/dist/decisions/schema.js +20 -20
- package/dist/decisions/strategies/rules.d.ts +1 -1
- package/dist/decisions/strategies/rules.js +24 -24
- package/dist/decisions/strategies/rules.js.map +1 -1
- package/dist/decisions/strategies/score.d.ts +1 -1
- package/dist/decisions/strategies/score.js +3 -3
- package/dist/decisions/types.d.ts +19 -19
- package/dist/editorLoader.js +20 -20
- package/dist/editorLoader.js.map +1 -1
- package/dist/events/EventBus.d.ts +3 -3
- package/dist/events/EventBus.js +5 -7
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/index.d.ts +6 -6
- package/dist/events/index.js +5 -5
- package/dist/events/normalizers/canvas.d.ts +2 -2
- package/dist/events/normalizers/canvas.js +3 -3
- package/dist/events/normalizers/canvas.js.map +1 -1
- package/dist/events/normalizers/posthog.d.ts +1 -1
- package/dist/events/normalizers/posthog.js +35 -27
- package/dist/events/normalizers/posthog.js.map +1 -1
- package/dist/events/schema.d.ts +1 -1
- package/dist/events/schema.js +2 -2
- package/dist/events/types.d.ts +1 -1
- package/dist/events/types.js +27 -27
- package/dist/experiments/adapters/growthbook.d.ts +4 -4
- package/dist/experiments/adapters/growthbook.js +5 -5
- package/dist/experiments/adapters/growthbook.js.map +1 -1
- package/dist/experiments/index.d.ts +3 -3
- package/dist/experiments/index.js +1 -1
- package/dist/experiments/registry.d.ts +2 -2
- package/dist/experiments/registry.js +2 -2
- package/dist/experiments/types.d.ts +5 -1
- package/dist/fetchers/cdnFetcher.d.ts +1 -1
- package/dist/fetchers/cdnFetcher.js +4 -8
- package/dist/fetchers/cdnFetcher.js.map +1 -1
- package/dist/fetchers/experimentsFetcher.d.ts +2 -2
- package/dist/fetchers/experimentsFetcher.js +7 -7
- package/dist/fetchers/experimentsFetcher.js.map +1 -1
- package/dist/fetchers/index.d.ts +3 -3
- package/dist/fetchers/index.js +2 -2
- package/dist/fetchers/index.js.map +1 -1
- package/dist/fetchers/registry.d.ts +1 -1
- package/dist/fetchers/registry.js +4 -4
- package/dist/fetchers/types.d.ts +1 -1
- package/dist/hooks/useCanvasOverlays.d.ts +5 -5
- package/dist/hooks/useCanvasOverlays.js +15 -13
- package/dist/hooks/useCanvasOverlays.js.map +1 -1
- package/dist/hooks/useHostPatches.d.ts +2 -2
- package/dist/hooks/useHostPatches.js +8 -8
- package/dist/hooks/useHostPatches.js.map +1 -1
- package/dist/hooks/useShadowCanvasConfig.d.ts +3 -3
- package/dist/hooks/useShadowCanvasConfig.js +5 -2
- package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
- package/dist/hostPatcher/core/patcher.d.ts +1 -1
- package/dist/hostPatcher/core/patcher.js +18 -9
- package/dist/hostPatcher/core/patcher.js.map +1 -1
- package/dist/hostPatcher/core/sanitizer.js +24 -3
- package/dist/hostPatcher/core/sanitizer.js.map +1 -1
- package/dist/hostPatcher/policy/defaultPolicy.js +15 -5
- package/dist/hostPatcher/policy/defaultPolicy.js.map +1 -1
- package/dist/hostPatcher/utils/anchors.js +4 -6
- package/dist/hostPatcher/utils/anchors.js.map +1 -1
- package/dist/index.d.ts +32 -32
- package/dist/index.js +29 -29
- package/dist/index.js.map +1 -1
- package/dist/metrics/index.d.ts +1 -1
- package/dist/metrics/index.js +1 -1
- package/dist/metrics/sessionMetrics.d.ts +1 -1
- package/dist/metrics/sessionMetrics.js +6 -6
- package/dist/overlays/fetcher.d.ts +2 -2
- package/dist/overlays/fetcher.js +4 -4
- package/dist/overlays/recipeRegistry.js +2 -2
- package/dist/overlays/recipeRegistry.js.map +1 -1
- package/dist/overlays/runtime/anchor/resolve.js +1 -1
- package/dist/overlays/runtime/anchor/resolve.js.map +1 -1
- package/dist/overlays/runtime/index.d.ts +7 -7
- package/dist/overlays/runtime/index.js +7 -7
- package/dist/overlays/runtime/overlay/highlight.js +39 -39
- package/dist/overlays/runtime/overlay/highlight.js.map +1 -1
- package/dist/overlays/runtime/overlay/modal.js +5 -5
- package/dist/overlays/runtime/overlay/modal.js.map +1 -1
- package/dist/overlays/runtime/overlay/root.js +1 -1
- package/dist/overlays/runtime/overlay/runner.js +70 -23
- package/dist/overlays/runtime/overlay/runner.js.map +1 -1
- package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
- package/dist/overlays/runtime/overlay/tooltip.js +10 -10
- package/dist/overlays/runtime/overlay/tooltip.js.map +1 -1
- package/dist/overlays/runtime/utils/dom.js +4 -1
- package/dist/overlays/runtime/utils/dom.js.map +1 -1
- package/dist/overlays/schema.js +12 -8
- package/dist/overlays/schema.js.map +1 -1
- package/dist/react.d.ts +7 -7
- package/dist/react.js +4 -4
- package/dist/react.js.map +1 -1
- package/dist/render/RenderContext.d.ts +2 -2
- package/dist/render/RenderContext.js +5 -5
- package/dist/render/RenderContext.js.map +1 -1
- package/dist/render/index.d.ts +3 -3
- package/dist/render/index.js +1 -1
- package/dist/render/types.d.ts +4 -4
- package/dist/runtime.d.ts +12 -12
- package/dist/runtime.js +20 -20
- package/dist/runtime.js.map +1 -1
- package/dist/smart-canvas.esm.js +16 -16
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +644 -491
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +15 -15
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/state/StateStore.d.ts +1 -1
- package/dist/state/StateStore.js +9 -9
- package/dist/state/StateStore.js.map +1 -1
- package/dist/state/helpers/cooldowns.d.ts +1 -1
- package/dist/state/helpers/cooldowns.js +1 -1
- package/dist/state/helpers/dismissals.d.ts +1 -1
- package/dist/state/helpers/dismissals.js +1 -1
- package/dist/state/helpers/frequency.d.ts +1 -1
- package/dist/state/helpers/frequency.js +1 -1
- package/dist/state/index.d.ts +4 -4
- package/dist/state/index.js +3 -3
- package/dist/state/schema.d.ts +1 -1
- package/dist/state/schema.js +1 -1
- package/dist/store/example.js +13 -13
- package/dist/store/example.js.map +1 -1
- package/dist/store/mini-effector.js +6 -8
- package/dist/store/mini-effector.js.map +1 -1
- package/dist/surfaces/Surfaces.d.ts +1 -1
- package/dist/surfaces/Surfaces.js +25 -25
- package/dist/surfaces/Surfaces.js.map +1 -1
- package/dist/surfaces/index.d.ts +4 -4
- package/dist/surfaces/index.js +3 -3
- package/dist/surfaces/positioning.d.ts +2 -2
- package/dist/surfaces/positioning.js +74 -77
- package/dist/surfaces/positioning.js.map +1 -1
- package/dist/surfaces/types.d.ts +9 -9
- package/dist/surfaces/types.js +7 -7
- package/dist/surfaces/types.js.map +1 -1
- package/dist/telemetry/adapters/noop.d.ts +12 -0
- package/dist/telemetry/adapters/noop.js +42 -0
- package/dist/telemetry/adapters/noop.js.map +1 -0
- package/dist/telemetry/adapters/posthog.d.ts +2 -2
- package/dist/telemetry/adapters/posthog.js +29 -16
- package/dist/telemetry/adapters/posthog.js.map +1 -1
- package/dist/telemetry/index.d.ts +4 -3
- package/dist/telemetry/index.js +3 -2
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/registry.d.ts +2 -2
- package/dist/telemetry/registry.js +4 -2
- package/dist/telemetry/registry.js.map +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/theme/ThemeProvider.d.ts +2 -2
- package/dist/theme/ThemeProvider.js +21 -21
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/defaultTheme.d.ts +2 -2
- package/dist/theme/defaultTheme.js +111 -111
- package/dist/theme/defaultTheme.js.map +1 -1
- package/dist/theme/extractHostTheme.d.ts +1 -1
- package/dist/theme/extractHostTheme.js +42 -44
- package/dist/theme/extractHostTheme.js.map +1 -1
- package/dist/theme/index.d.ts +5 -5
- package/dist/theme/index.js +3 -3
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/types.d.ts +2 -2
- package/dist/token.js +3 -6
- package/dist/token.js.map +1 -1
- package/dist/types-only.d.ts +1 -1
- package/dist/types.d.ts +43 -43
- package/dist/widgets/WidgetRegistry.d.ts +2 -2
- package/dist/widgets/WidgetRegistry.js +11 -11
- package/dist/widgets/WidgetRegistry.js.map +1 -1
- package/dist/widgets/index.d.ts +2 -2
- package/dist/widgets/index.js +1 -1
- package/dist/widgets/index.js.map +1 -1
- package/package.json +4 -2
- package/schema/canvas-config.schema.json +51 -7
- package/schema/runtime-context.schema.json +1 -5
|
@@ -4,87 +4,84 @@
|
|
|
4
4
|
* Handles positioning for different slot types using CSS for static slots
|
|
5
5
|
* and Floating UI for adjacent slots.
|
|
6
6
|
*/
|
|
7
|
-
import { computePosition, autoUpdate, offset, flip, shift
|
|
8
|
-
import { getSlotType } from
|
|
7
|
+
import { computePosition, autoUpdate, offset, flip, shift } from '@floating-ui/dom';
|
|
8
|
+
import { getSlotType } from './types';
|
|
9
9
|
/**
|
|
10
10
|
* CSS styles for static surface slots.
|
|
11
11
|
*/
|
|
12
12
|
export const STATIC_SLOT_STYLES = {
|
|
13
13
|
drawer_right: {
|
|
14
|
-
position:
|
|
15
|
-
top:
|
|
16
|
-
right:
|
|
17
|
-
bottom:
|
|
18
|
-
width:
|
|
19
|
-
maxWidth:
|
|
14
|
+
position: 'fixed',
|
|
15
|
+
top: '0',
|
|
16
|
+
right: '0',
|
|
17
|
+
bottom: '0',
|
|
18
|
+
width: '360px',
|
|
19
|
+
maxWidth: '90vw',
|
|
20
20
|
},
|
|
21
21
|
drawer_left: {
|
|
22
|
-
position:
|
|
23
|
-
top:
|
|
24
|
-
left:
|
|
25
|
-
bottom:
|
|
26
|
-
width:
|
|
27
|
-
maxWidth:
|
|
22
|
+
position: 'fixed',
|
|
23
|
+
top: '0',
|
|
24
|
+
left: '0',
|
|
25
|
+
bottom: '0',
|
|
26
|
+
width: '360px',
|
|
27
|
+
maxWidth: '90vw',
|
|
28
28
|
},
|
|
29
29
|
drawer_bottom: {
|
|
30
|
-
position:
|
|
31
|
-
left:
|
|
32
|
-
right:
|
|
33
|
-
bottom:
|
|
34
|
-
maxHeight:
|
|
30
|
+
position: 'fixed',
|
|
31
|
+
left: '0',
|
|
32
|
+
right: '0',
|
|
33
|
+
bottom: '0',
|
|
34
|
+
maxHeight: '50vh',
|
|
35
35
|
},
|
|
36
36
|
overlay_center: {
|
|
37
|
-
position:
|
|
38
|
-
top:
|
|
39
|
-
left:
|
|
40
|
-
transform:
|
|
41
|
-
maxWidth:
|
|
42
|
-
maxHeight:
|
|
37
|
+
position: 'fixed',
|
|
38
|
+
top: '50%',
|
|
39
|
+
left: '50%',
|
|
40
|
+
transform: 'translate(-50%, -50%)',
|
|
41
|
+
maxWidth: '90vw',
|
|
42
|
+
maxHeight: '90vh',
|
|
43
43
|
},
|
|
44
44
|
overlay_corner_br: {
|
|
45
|
-
position:
|
|
46
|
-
bottom:
|
|
47
|
-
right:
|
|
48
|
-
maxWidth:
|
|
49
|
-
maxHeight:
|
|
45
|
+
position: 'fixed',
|
|
46
|
+
bottom: '16px',
|
|
47
|
+
right: '16px',
|
|
48
|
+
maxWidth: '400px',
|
|
49
|
+
maxHeight: '80vh',
|
|
50
50
|
},
|
|
51
51
|
overlay_corner_bl: {
|
|
52
|
-
position:
|
|
53
|
-
bottom:
|
|
54
|
-
left:
|
|
55
|
-
maxWidth:
|
|
56
|
-
maxHeight:
|
|
52
|
+
position: 'fixed',
|
|
53
|
+
bottom: '16px',
|
|
54
|
+
left: '16px',
|
|
55
|
+
maxWidth: '400px',
|
|
56
|
+
maxHeight: '80vh',
|
|
57
57
|
},
|
|
58
58
|
toast_top: {
|
|
59
|
-
position:
|
|
60
|
-
top:
|
|
61
|
-
left:
|
|
62
|
-
transform:
|
|
63
|
-
maxWidth:
|
|
59
|
+
position: 'fixed',
|
|
60
|
+
top: '16px',
|
|
61
|
+
left: '50%',
|
|
62
|
+
transform: 'translateX(-50%)',
|
|
63
|
+
maxWidth: '90vw',
|
|
64
64
|
},
|
|
65
65
|
toast_bottom: {
|
|
66
|
-
position:
|
|
67
|
-
bottom:
|
|
68
|
-
left:
|
|
69
|
-
transform:
|
|
70
|
-
maxWidth:
|
|
66
|
+
position: 'fixed',
|
|
67
|
+
bottom: '16px',
|
|
68
|
+
left: '50%',
|
|
69
|
+
transform: 'translateX(-50%)',
|
|
70
|
+
maxWidth: '90vw',
|
|
71
71
|
},
|
|
72
72
|
};
|
|
73
73
|
/**
|
|
74
74
|
* Animation keyframes for different animation types.
|
|
75
75
|
*/
|
|
76
76
|
export const ANIMATION_KEYFRAMES = {
|
|
77
|
-
fade: [
|
|
78
|
-
{ opacity: 0 },
|
|
79
|
-
{ opacity: 1 },
|
|
80
|
-
],
|
|
77
|
+
fade: [{ opacity: 0 }, { opacity: 1 }],
|
|
81
78
|
slide: [
|
|
82
|
-
{ opacity: 0, transform:
|
|
83
|
-
{ opacity: 1, transform:
|
|
79
|
+
{ opacity: 0, transform: 'translateY(10px)' },
|
|
80
|
+
{ opacity: 1, transform: 'translateY(0)' },
|
|
84
81
|
],
|
|
85
82
|
scale: [
|
|
86
|
-
{ opacity: 0, transform:
|
|
87
|
-
{ opacity: 1, transform:
|
|
83
|
+
{ opacity: 0, transform: 'scale(0.95)' },
|
|
84
|
+
{ opacity: 1, transform: 'scale(1)' },
|
|
88
85
|
],
|
|
89
86
|
none: [],
|
|
90
87
|
};
|
|
@@ -93,8 +90,8 @@ export const ANIMATION_KEYFRAMES = {
|
|
|
93
90
|
*/
|
|
94
91
|
export const ANIMATION_OPTIONS = {
|
|
95
92
|
duration: 200,
|
|
96
|
-
easing:
|
|
97
|
-
fill:
|
|
93
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)',
|
|
94
|
+
fill: 'forwards',
|
|
98
95
|
};
|
|
99
96
|
/**
|
|
100
97
|
* Apply static slot positioning to an element.
|
|
@@ -119,7 +116,7 @@ export function applyStaticSlotStyles(element, slot, constraints) {
|
|
|
119
116
|
* Returns a cleanup function.
|
|
120
117
|
*/
|
|
121
118
|
export function setupAdjacentPositioning(container, anchorEl, config) {
|
|
122
|
-
const placement = config.placement ===
|
|
119
|
+
const placement = config.placement === 'auto' ? 'bottom' : config.placement;
|
|
123
120
|
const middleware = [
|
|
124
121
|
offset(config.offset ? { mainAxis: config.offset.y, crossAxis: config.offset.x } : 8),
|
|
125
122
|
];
|
|
@@ -130,8 +127,8 @@ export function setupAdjacentPositioning(container, anchorEl, config) {
|
|
|
130
127
|
middleware.push(shift({ padding: 8 }));
|
|
131
128
|
}
|
|
132
129
|
// Set initial position style
|
|
133
|
-
container.style.position =
|
|
134
|
-
container.style.zIndex =
|
|
130
|
+
container.style.position = 'absolute';
|
|
131
|
+
container.style.zIndex = '2147483646';
|
|
135
132
|
const cleanup = autoUpdate(anchorEl, container, async () => {
|
|
136
133
|
const { x, y, strategy } = await computePosition(anchorEl, container, {
|
|
137
134
|
placement,
|
|
@@ -149,11 +146,11 @@ export function setupAdjacentPositioning(container, anchorEl, config) {
|
|
|
149
146
|
* Set up inline slot positioning.
|
|
150
147
|
* Inline slots render content inside the anchor element.
|
|
151
148
|
*/
|
|
152
|
-
export function setupInlinePositioning(container, anchorEl, position =
|
|
149
|
+
export function setupInlinePositioning(container, anchorEl, position = 'append') {
|
|
153
150
|
// Reset container positioning (inline is flow-based)
|
|
154
|
-
container.style.position =
|
|
155
|
-
container.style.display =
|
|
156
|
-
if (position ===
|
|
151
|
+
container.style.position = 'relative';
|
|
152
|
+
container.style.display = 'inline-block';
|
|
153
|
+
if (position === 'prepend') {
|
|
157
154
|
anchorEl.insertBefore(container, anchorEl.firstChild);
|
|
158
155
|
}
|
|
159
156
|
else {
|
|
@@ -167,7 +164,7 @@ export function setupInlinePositioning(container, anchorEl, position = "append")
|
|
|
167
164
|
* Play enter animation on an element.
|
|
168
165
|
*/
|
|
169
166
|
export function playEnterAnimation(element, animationType) {
|
|
170
|
-
if (animationType ===
|
|
167
|
+
if (animationType === 'none' || ANIMATION_KEYFRAMES[animationType].length === 0) {
|
|
171
168
|
return null;
|
|
172
169
|
}
|
|
173
170
|
return element.animate(ANIMATION_KEYFRAMES[animationType], ANIMATION_OPTIONS);
|
|
@@ -177,7 +174,7 @@ export function playEnterAnimation(element, animationType) {
|
|
|
177
174
|
* Returns a promise that resolves when the animation completes.
|
|
178
175
|
*/
|
|
179
176
|
export function playExitAnimation(element, animationType) {
|
|
180
|
-
if (animationType ===
|
|
177
|
+
if (animationType === 'none' || ANIMATION_KEYFRAMES[animationType].length === 0) {
|
|
181
178
|
return Promise.resolve();
|
|
182
179
|
}
|
|
183
180
|
const keyframes = [...ANIMATION_KEYFRAMES[animationType]].reverse();
|
|
@@ -191,15 +188,15 @@ export function playExitAnimation(element, animationType) {
|
|
|
191
188
|
* Create and style a surface container element.
|
|
192
189
|
*/
|
|
193
190
|
export function createSurfaceContainer(slot, id) {
|
|
194
|
-
const container = document.createElement(
|
|
195
|
-
container.setAttribute(
|
|
196
|
-
container.setAttribute(
|
|
197
|
-
container.className =
|
|
191
|
+
const container = document.createElement('div');
|
|
192
|
+
container.setAttribute('data-syntro-surface', slot);
|
|
193
|
+
container.setAttribute('data-syntro-mount-id', id);
|
|
194
|
+
container.className = 'syntro-surface';
|
|
198
195
|
// Base styles for all surfaces
|
|
199
196
|
Object.assign(container.style, {
|
|
200
|
-
pointerEvents:
|
|
201
|
-
boxSizing:
|
|
202
|
-
overflow:
|
|
197
|
+
pointerEvents: 'auto',
|
|
198
|
+
boxSizing: 'border-box',
|
|
199
|
+
overflow: 'auto',
|
|
203
200
|
});
|
|
204
201
|
return container;
|
|
205
202
|
}
|
|
@@ -209,19 +206,19 @@ export function createSurfaceContainer(slot, id) {
|
|
|
209
206
|
export function getSlotZIndex(slot) {
|
|
210
207
|
const type = getSlotType(slot);
|
|
211
208
|
switch (type) {
|
|
212
|
-
case
|
|
209
|
+
case 'static':
|
|
213
210
|
// Drawers and overlays
|
|
214
|
-
if (slot.startsWith(
|
|
211
|
+
if (slot.startsWith('drawer'))
|
|
215
212
|
return 2147483640;
|
|
216
|
-
if (slot.startsWith(
|
|
213
|
+
if (slot.startsWith('overlay'))
|
|
217
214
|
return 2147483642;
|
|
218
|
-
if (slot.startsWith(
|
|
215
|
+
if (slot.startsWith('toast'))
|
|
219
216
|
return 2147483644;
|
|
220
217
|
return 2147483640;
|
|
221
|
-
case
|
|
218
|
+
case 'inline':
|
|
222
219
|
// Inline content doesn't need high z-index
|
|
223
220
|
return 1;
|
|
224
|
-
case
|
|
221
|
+
case 'adjacent':
|
|
225
222
|
// Adjacent content needs to be above page content
|
|
226
223
|
return 2147483638;
|
|
227
224
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positioning.js","sourceRoot":"","sources":["../../src/surfaces/positioning.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"positioning.js","sourceRoot":"","sources":["../../src/surfaces/positioning.ts"],"names":[],"mappings":"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"}
|
package/dist/surfaces/types.d.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* Defines types for the managed surface system that renders UI into named slots.
|
|
5
5
|
* Surfaces handles layout, stacking, animations, and priority-based arbitration.
|
|
6
6
|
*/
|
|
7
|
-
import type { Placement } from
|
|
7
|
+
import type { Placement } from '@floating-ui/dom';
|
|
8
8
|
/** Static surface slots with fixed positioning */
|
|
9
|
-
export type StaticSurfaceSlot =
|
|
9
|
+
export type StaticSurfaceSlot = 'drawer_right' | 'drawer_left' | 'drawer_bottom' | 'overlay_center' | 'overlay_corner_br' | 'overlay_corner_bl' | 'toast_top' | 'toast_bottom';
|
|
10
10
|
/** Dynamic inline slot (rendered inside anchor) */
|
|
11
11
|
export type InlineSurfaceSlot = `inline:${string}`;
|
|
12
12
|
/** Dynamic adjacent slot (positioned near anchor) */
|
|
@@ -15,31 +15,31 @@ export type AdjacentSurfaceSlot = `adjacent:${string}`;
|
|
|
15
15
|
export type SurfaceSlot = StaticSurfaceSlot | InlineSurfaceSlot | AdjacentSurfaceSlot;
|
|
16
16
|
/** React component content */
|
|
17
17
|
export interface ReactContent {
|
|
18
|
-
type:
|
|
18
|
+
type: 'react';
|
|
19
19
|
component: unknown;
|
|
20
20
|
props?: Record<string, unknown>;
|
|
21
21
|
}
|
|
22
22
|
/** HTML string content */
|
|
23
23
|
export interface HtmlContent {
|
|
24
|
-
type:
|
|
24
|
+
type: 'html';
|
|
25
25
|
content: string;
|
|
26
26
|
}
|
|
27
27
|
/** Widget reference content */
|
|
28
28
|
export interface WidgetContent {
|
|
29
|
-
type:
|
|
29
|
+
type: 'widget';
|
|
30
30
|
widgetId: string;
|
|
31
31
|
config?: Record<string, unknown>;
|
|
32
32
|
}
|
|
33
33
|
/** Custom mount function content */
|
|
34
34
|
export interface CustomContent {
|
|
35
|
-
type:
|
|
35
|
+
type: 'custom';
|
|
36
36
|
mount: (container: HTMLElement) => () => void;
|
|
37
37
|
}
|
|
38
38
|
/** Union of all renderable content types */
|
|
39
39
|
export type RenderableContent = ReactContent | HtmlContent | WidgetContent | CustomContent;
|
|
40
40
|
/** Position configuration for adjacent slots */
|
|
41
41
|
export interface PositionConfig {
|
|
42
|
-
placement: Placement |
|
|
42
|
+
placement: Placement | 'auto';
|
|
43
43
|
offset?: {
|
|
44
44
|
x: number;
|
|
45
45
|
y: number;
|
|
@@ -55,7 +55,7 @@ export interface MountConstraints {
|
|
|
55
55
|
minHeight?: string;
|
|
56
56
|
}
|
|
57
57
|
/** Animation types for enter/exit */
|
|
58
|
-
export type AnimationType =
|
|
58
|
+
export type AnimationType = 'fade' | 'slide' | 'scale' | 'none';
|
|
59
59
|
/** Options when mounting content to a surface */
|
|
60
60
|
export interface MountOptions {
|
|
61
61
|
/** Priority for conflict resolution (higher wins) */
|
|
@@ -162,6 +162,6 @@ export interface InternalMountEntry {
|
|
|
162
162
|
mountedAt: number;
|
|
163
163
|
}
|
|
164
164
|
/** Slot type classifier */
|
|
165
|
-
export declare function getSlotType(slot: SurfaceSlot):
|
|
165
|
+
export declare function getSlotType(slot: SurfaceSlot): 'static' | 'inline' | 'adjacent';
|
|
166
166
|
/** Extract anchor ID from inline/adjacent slots */
|
|
167
167
|
export declare function getSlotAnchorId(slot: SurfaceSlot): string | null;
|
package/dist/surfaces/types.js
CHANGED
|
@@ -6,17 +6,17 @@
|
|
|
6
6
|
*/
|
|
7
7
|
/** Slot type classifier */
|
|
8
8
|
export function getSlotType(slot) {
|
|
9
|
-
if (slot.startsWith(
|
|
10
|
-
return
|
|
11
|
-
if (slot.startsWith(
|
|
12
|
-
return
|
|
13
|
-
return
|
|
9
|
+
if (slot.startsWith('inline:'))
|
|
10
|
+
return 'inline';
|
|
11
|
+
if (slot.startsWith('adjacent:'))
|
|
12
|
+
return 'adjacent';
|
|
13
|
+
return 'static';
|
|
14
14
|
}
|
|
15
15
|
/** Extract anchor ID from inline/adjacent slots */
|
|
16
16
|
export function getSlotAnchorId(slot) {
|
|
17
|
-
if (slot.startsWith(
|
|
17
|
+
if (slot.startsWith('inline:'))
|
|
18
18
|
return slot.slice(7);
|
|
19
|
-
if (slot.startsWith(
|
|
19
|
+
if (slot.startsWith('adjacent:'))
|
|
20
20
|
return slot.slice(9);
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/surfaces/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/surfaces/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+OH,2BAA2B;AAC3B,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,UAAU,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* No-op adapter for the TelemetryClient interface.
|
|
3
|
+
*
|
|
4
|
+
* Used when telemetry is disabled (e.g. demo mode with t="noop").
|
|
5
|
+
* All tracking methods silently do nothing. Session/distinct IDs
|
|
6
|
+
* return stable values so downstream code that reads them still works.
|
|
7
|
+
*/
|
|
8
|
+
import type { TelemetryClient } from '../types';
|
|
9
|
+
/**
|
|
10
|
+
* Create a TelemetryClient that silently discards all events.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createNoopClient(): TelemetryClient;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
function randomId() {
|
|
2
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
3
|
+
let id = '';
|
|
4
|
+
for (let i = 0; i < 16; i++) {
|
|
5
|
+
id += chars[Math.floor(Math.random() * chars.length)];
|
|
6
|
+
}
|
|
7
|
+
return id;
|
|
8
|
+
}
|
|
9
|
+
class NoopAdapter {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.sessionId = randomId();
|
|
12
|
+
console.log(`[Syntro Telemetry] Using noop adapter (no telemetry configured). sessionId=${this.sessionId}`);
|
|
13
|
+
}
|
|
14
|
+
trackCanvasOpened(_surface) { }
|
|
15
|
+
trackCanvasClosed(_surface) { }
|
|
16
|
+
trackRectangleViewed(_rectangleId, _surface) { }
|
|
17
|
+
trackAction(_action, _rectangleId, _surface) { }
|
|
18
|
+
register(_properties) { }
|
|
19
|
+
getSessionId() {
|
|
20
|
+
return this.sessionId;
|
|
21
|
+
}
|
|
22
|
+
startSessionRecording() { }
|
|
23
|
+
trackExperiment(_key, _variationId, _variationName) { }
|
|
24
|
+
setPersonProperties(_properties) { }
|
|
25
|
+
setPersonPropertiesOnce(_properties) { }
|
|
26
|
+
getDistinctId() {
|
|
27
|
+
return 'demo-user';
|
|
28
|
+
}
|
|
29
|
+
getAllFeatureFlags() {
|
|
30
|
+
return {};
|
|
31
|
+
}
|
|
32
|
+
getSegmentFlags() {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a TelemetryClient that silently discards all events.
|
|
38
|
+
*/
|
|
39
|
+
export function createNoopClient() {
|
|
40
|
+
return new NoopAdapter();
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=noop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noop.js","sourceRoot":"","sources":["../../../src/telemetry/adapters/noop.ts"],"names":[],"mappings":"AASA,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,gEAAgE,CAAC;IAC/E,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,WAAW;IAGf;QACE,IAAI,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CACT,8EAA8E,IAAI,CAAC,SAAS,EAAE,CAC/F,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,QAAuB,IAAS,CAAC;IACnD,iBAAiB,CAAC,QAAuB,IAAS,CAAC;IACnD,oBAAoB,CAAC,YAAoB,EAAE,QAAuB,IAAS,CAAC;IAC5E,WAAW,CAAC,OAAe,EAAE,YAAoB,EAAE,QAAuB,IAAS,CAAC;IAEpF,QAAQ,CAAC,WAAoC,IAAS,CAAC;IACvD,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,qBAAqB,KAAU,CAAC;IAChC,eAAe,CAAC,IAAY,EAAE,YAAoB,EAAE,cAAuB,IAAS,CAAC;IACrF,mBAAmB,CAAC,WAAoC,IAAS,CAAC;IAClE,uBAAuB,CAAC,WAAoC,IAAS,CAAC;IAEtE,aAAa;QACX,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,kBAAkB;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,eAAe;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,WAAW,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This file is INTERNAL - consumers should only import from telemetry/types.ts
|
|
5
5
|
* and use the TelemetryClient interface.
|
|
6
6
|
*/
|
|
7
|
-
import type { PostHog, Properties } from
|
|
8
|
-
import type { TelemetryClient, CanvasSurface } from
|
|
7
|
+
import type { PostHog, Properties } from 'posthog-js';
|
|
8
|
+
import type { TelemetryClient, CanvasSurface } from '../types';
|
|
9
9
|
export interface PostHogAdapterOptions {
|
|
10
10
|
/**
|
|
11
11
|
* PostHog API key.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import posthog from
|
|
1
|
+
import posthog from 'posthog-js';
|
|
2
2
|
/**
|
|
3
3
|
* Internal adapter that implements TelemetryClient using PostHog.
|
|
4
4
|
*/
|
|
@@ -9,14 +9,16 @@ export class PostHogAdapter {
|
|
|
9
9
|
this.client = options.client;
|
|
10
10
|
this.featureFlagsCallback = options.onFeatureFlagsLoaded;
|
|
11
11
|
this.captureCallback = options.onCapture;
|
|
12
|
-
if (!this.client && typeof window !==
|
|
13
|
-
this.client = posthog;
|
|
12
|
+
if (!this.client && typeof window !== 'undefined' && options.apiKey) {
|
|
14
13
|
// Determine if we should enable feature flags (for segment membership)
|
|
15
14
|
// Default: true (enabled) to support segment targeting via /decide
|
|
16
15
|
const enableFeatureFlags = (_a = options.enableFeatureFlags) !== null && _a !== void 0 ? _a : true;
|
|
16
|
+
// Use a named instance so we don't clobber the customer's global PostHog.
|
|
17
|
+
// posthog.init() with a 3rd arg returns an isolated instance.
|
|
18
|
+
const instanceName = 'syntro_' + (options.apiKey.slice(-6) || 'sdk');
|
|
17
19
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
-
this.client.init(options.apiKey, {
|
|
19
|
-
api_host: (_b = options.apiHost) !== null && _b !== void 0 ? _b :
|
|
20
|
+
this.client = posthog.init(options.apiKey, {
|
|
21
|
+
api_host: (_b = options.apiHost) !== null && _b !== void 0 ? _b : 'https://telemetry.syntrologie.com',
|
|
20
22
|
// Feature flags for segment membership (in_segment_* flags)
|
|
21
23
|
// When enabled, /decide is called to get segment flags
|
|
22
24
|
advanced_disable_feature_flags: !enableFeatureFlags,
|
|
@@ -49,17 +51,28 @@ export class PostHogAdapter {
|
|
|
49
51
|
this.featureFlagsCallback(allFlags);
|
|
50
52
|
}
|
|
51
53
|
});
|
|
54
|
+
// If flags already loaded before callback was registered, fire immediately
|
|
55
|
+
const existingFlags = this.getAllFeatureFlags();
|
|
56
|
+
if (existingFlags && Object.keys(existingFlags).length > 0) {
|
|
57
|
+
this.featureFlagsCallback(existingFlags);
|
|
58
|
+
}
|
|
52
59
|
}
|
|
53
60
|
// Wire up capture callback to feed events into EventBus
|
|
54
61
|
if (this.captureCallback) {
|
|
62
|
+
// PostHog's eventCaptured passes a single CaptureResult object:
|
|
63
|
+
// { uuid, event, properties, $set, $set_once, timestamp }
|
|
55
64
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
-
ph.on('eventCaptured', (
|
|
65
|
+
ph.on('eventCaptured', (data) => {
|
|
57
66
|
var _a;
|
|
58
|
-
|
|
67
|
+
const eventName = typeof data === 'string' ? data : data === null || data === void 0 ? void 0 : data.event;
|
|
68
|
+
const properties = typeof data === 'string' ? undefined : data === null || data === void 0 ? void 0 : data.properties;
|
|
69
|
+
if (typeof eventName === 'string') {
|
|
70
|
+
(_a = this.captureCallback) === null || _a === void 0 ? void 0 : _a.call(this, eventName, properties);
|
|
71
|
+
}
|
|
59
72
|
});
|
|
60
73
|
}
|
|
61
74
|
},
|
|
62
|
-
});
|
|
75
|
+
}, instanceName);
|
|
63
76
|
}
|
|
64
77
|
}
|
|
65
78
|
/**
|
|
@@ -81,7 +94,7 @@ export class PostHogAdapter {
|
|
|
81
94
|
return {};
|
|
82
95
|
const segmentFlags = {};
|
|
83
96
|
for (const [key, value] of Object.entries(allFlags)) {
|
|
84
|
-
if (key.startsWith(
|
|
97
|
+
if (key.startsWith('in_segment_')) {
|
|
85
98
|
segmentFlags[key] = value === true;
|
|
86
99
|
}
|
|
87
100
|
}
|
|
@@ -100,16 +113,16 @@ export class PostHogAdapter {
|
|
|
100
113
|
(_a = this.client) === null || _a === void 0 ? void 0 : _a.capture(eventName, payload);
|
|
101
114
|
}
|
|
102
115
|
trackCanvasOpened(surface) {
|
|
103
|
-
this.track(
|
|
116
|
+
this.track('shadow_canvas_opened', { surface });
|
|
104
117
|
}
|
|
105
118
|
trackCanvasClosed(surface) {
|
|
106
|
-
this.track(
|
|
119
|
+
this.track('shadow_canvas_closed', { surface });
|
|
107
120
|
}
|
|
108
121
|
trackRectangleViewed(rectangleId, surface) {
|
|
109
|
-
this.track(
|
|
122
|
+
this.track('shadow_canvas_rectangle_viewed', { rectangleId, surface });
|
|
110
123
|
}
|
|
111
124
|
trackAction(action, rectangleId, surface) {
|
|
112
|
-
this.track(
|
|
125
|
+
this.track('shadow_canvas_action', { action, rectangleId, surface });
|
|
113
126
|
}
|
|
114
127
|
register(properties) {
|
|
115
128
|
var _a, _b;
|
|
@@ -135,7 +148,7 @@ export class PostHogAdapter {
|
|
|
135
148
|
[`${experimentProperty}_id`]: variationId,
|
|
136
149
|
});
|
|
137
150
|
// Fire discrete event for experiment assignment tracking
|
|
138
|
-
this.track(
|
|
151
|
+
this.track('$experiment_started', {
|
|
139
152
|
$experiment_key: experimentKey,
|
|
140
153
|
$experiment_variation_id: variationId,
|
|
141
154
|
$experiment_variation_name: variationName !== null && variationName !== void 0 ? variationName : `variation_${variationId}`,
|
|
@@ -144,12 +157,12 @@ export class PostHogAdapter {
|
|
|
144
157
|
setPersonProperties(properties) {
|
|
145
158
|
var _a;
|
|
146
159
|
// PostHog's $set event sets person properties
|
|
147
|
-
(_a = this.client) === null || _a === void 0 ? void 0 : _a.capture(
|
|
160
|
+
(_a = this.client) === null || _a === void 0 ? void 0 : _a.capture('$set', { $set: properties });
|
|
148
161
|
}
|
|
149
162
|
setPersonPropertiesOnce(properties) {
|
|
150
163
|
var _a;
|
|
151
164
|
// PostHog's $set_once only sets if property doesn't exist
|
|
152
|
-
(_a = this.client) === null || _a === void 0 ? void 0 : _a.capture(
|
|
165
|
+
(_a = this.client) === null || _a === void 0 ? void 0 : _a.capture('$set', { $set_once: properties });
|
|
153
166
|
}
|
|
154
167
|
getDistinctId() {
|
|
155
168
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../../src/telemetry/adapters/posthog.ts"],"names":[],"mappings":"AAOA,OAAO,OAAO,MAAM,YAAY,CAAC;AAuEjC;;GAEG;AACH,MAAM,OAAO,cAAc;IAKzB,YAA6B,UAAiC,EAAE;;QAAnC,YAAO,GAAP,OAAO,CAA4B;QAC9D,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpE,
|
|
1
|
+
{"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../../src/telemetry/adapters/posthog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export type { TelemetryClient, CanvasSurface } from
|
|
2
|
-
export { createPostHogClient } from
|
|
3
|
-
export type { PostHogAdapterOptions } from
|
|
1
|
+
export type { TelemetryClient, CanvasSurface } from './types';
|
|
2
|
+
export { createPostHogClient } from './adapters/posthog';
|
|
3
|
+
export type { PostHogAdapterOptions } from './adapters/posthog';
|
|
4
|
+
export { createNoopClient } from './adapters/noop';
|
package/dist/telemetry/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
// Adapter
|
|
2
|
-
export { createPostHogClient } from
|
|
1
|
+
// Adapter factories - consumers use these to create clients
|
|
2
|
+
export { createPostHogClient } from './adapters/posthog';
|
|
3
|
+
export { createNoopClient } from './adapters/noop';
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"AAGA,4DAA4D;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* This allows the bootstrap module to dynamically create
|
|
6
6
|
* telemetry clients based on token configuration.
|
|
7
7
|
*/
|
|
8
|
-
import { PostHogAdapterOptions } from
|
|
9
|
-
import type { TelemetryClient } from
|
|
8
|
+
import { PostHogAdapterOptions } from './adapters/posthog';
|
|
9
|
+
import type { TelemetryClient } from './types';
|
|
10
10
|
/**
|
|
11
11
|
* Create a telemetry client for the specified provider.
|
|
12
12
|
*
|