@syntrologie/runtime-sdk 2.0.0-canary.1 → 2.0.1-canary.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/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 -7
- package/dist/actions/executors/index.js +28 -28
- 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 +12 -12
- 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 +28 -22
- 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 +11 -0
- package/dist/apps/faq/index.js.map +7 -0
- package/dist/apps/gamification/index.js +2 -0
- package/dist/apps/gamification/index.js.map +7 -0
- package/dist/apps/index.d.ts +10 -13
- package/dist/apps/index.js +8 -17
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/nav/index.js +11 -0
- package/dist/apps/nav/index.js.map +7 -0
- 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 +26 -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 +34 -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 +45 -75
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +24594 -21824
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +45 -75
- 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 +11 -12
- package/schema/canvas-config.schema.json +51 -7
- package/schema/runtime-context.schema.json +1 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext, useMemo } from
|
|
2
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
3
3
|
const RenderContext = createContext(null);
|
|
4
4
|
/**
|
|
5
5
|
* Provider for render props and appearance configuration
|
|
@@ -13,21 +13,21 @@ export function RenderProvider({ children, renderProps = {}, appearance = {}, ac
|
|
|
13
13
|
var _a;
|
|
14
14
|
const renderProp = renderProps[propName];
|
|
15
15
|
// Check for type-specific override first
|
|
16
|
-
if (propName ===
|
|
16
|
+
if (propName === 'renderContent' && renderProps.renderByType) {
|
|
17
17
|
const contentType = (_a = data.content) === null || _a === void 0 ? void 0 : _a.type;
|
|
18
18
|
if (contentType && renderProps.renderByType[contentType]) {
|
|
19
19
|
return renderProps.renderByType[contentType](data, defaultRenderer);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
// Use custom render prop if provided
|
|
23
|
-
if (typeof renderProp ===
|
|
23
|
+
if (typeof renderProp === 'function') {
|
|
24
24
|
return renderProp(data, defaultRenderer);
|
|
25
25
|
}
|
|
26
26
|
// Fall back to default renderer
|
|
27
27
|
return defaultRenderer(data);
|
|
28
28
|
},
|
|
29
29
|
}), [renderProps, appearance, actionHandlers]);
|
|
30
|
-
return
|
|
30
|
+
return _jsx(RenderContext.Provider, { value: value, children: children });
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Hook to access render context
|
|
@@ -35,7 +35,7 @@ export function RenderProvider({ children, renderProps = {}, appearance = {}, ac
|
|
|
35
35
|
export function useRenderContext() {
|
|
36
36
|
const context = useContext(RenderContext);
|
|
37
37
|
if (!context) {
|
|
38
|
-
throw new Error(
|
|
38
|
+
throw new Error('useRenderContext must be used within a RenderProvider');
|
|
39
39
|
}
|
|
40
40
|
return context;
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderContext.js","sourceRoot":"","sources":["../../src/render/RenderContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAsBtE,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AASrE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAW,GAAG,EAAE,EAChB,UAAU,GAAG,EAAE,EACf,cAAc,GAAG,EAAE,GACC;IACpB,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,WAAW;QACX,UAAU;QACV,cAAc;QACd,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;;YAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEzC,yCAAyC;YACzC,IAAI,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC;gBACvC,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzD,OAAO,WAAW,CAAC,YAAY,CAAC,WAAW,CAAE,CAC3C,IAAI,EACJ,eAAkC,CAC5B,CAAC;gBACX,CAAC;YACH,CAAC;YAED,qCAAqC;YACrC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,OAAO,UAAU,CAAC,IAAI,EAAE,eAAkC,CAAQ,CAAC;YACrE,CAAC;YAED,gCAAgC;YAChC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,EACF,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAC1C,CAAC;IAEF,OAAO,
|
|
1
|
+
{"version":3,"file":"RenderContext.js","sourceRoot":"","sources":["../../src/render/RenderContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAsBtE,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AASrE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAW,GAAG,EAAE,EAChB,UAAU,GAAG,EAAE,EACf,cAAc,GAAG,EAAE,GACC;IACpB,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,WAAW;QACX,UAAU;QACV,cAAc;QACd,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;;YAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEzC,yCAAyC;YACzC,IAAI,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC;gBACvC,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzD,OAAO,WAAW,CAAC,YAAY,CAAC,WAAW,CAAE,CAC3C,IAAI,EACJ,eAAkC,CAC5B,CAAC;gBACX,CAAC;YACH,CAAC;YAED,qCAAqC;YACrC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,OAAO,UAAU,CAAC,IAAI,EAAE,eAAkC,CAAQ,CAAC;YACrE,CAAC;YAED,gCAAgC;YAChC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,EACF,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAC1C,CAAC;IAEF,OAAO,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA0B,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,gBAAgB,EAAE,CAAC,WAAW,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,gBAAgB,EAAE,CAAC,UAAU,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,gBAAgB,EAAE,CAAC,cAAc,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,QAA2B,EAC3B,IAAgB,EAChB,eAAmC;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC"}
|
package/dist/render/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type { RenderData, DefaultRenderer, RenderProp, RenderProps, StyleOverrides, ClassNameOverrides, AppearanceConfig, ActionHandler, } from
|
|
2
|
-
export { RenderProvider, useRenderContext, useRenderProps, useAppearance, useActionHandlers, useRender, } from
|
|
3
|
-
export type { RenderProviderProps } from
|
|
1
|
+
export type { RenderData, DefaultRenderer, RenderProp, RenderProps, StyleOverrides, ClassNameOverrides, AppearanceConfig, ActionHandler, } from './types';
|
|
2
|
+
export { RenderProvider, useRenderContext, useRenderProps, useAppearance, useActionHandlers, useRender, } from './RenderContext';
|
|
3
|
+
export type { RenderProviderProps } from './RenderContext';
|
package/dist/render/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Context and hooks
|
|
2
|
-
export { RenderProvider, useRenderContext, useRenderProps, useAppearance, useActionHandlers, useRender, } from
|
|
2
|
+
export { RenderProvider, useRenderContext, useRenderProps, useAppearance, useActionHandlers, useRender, } from './RenderContext';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/render/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ReactNode, CSSProperties } from
|
|
2
|
-
import type { TileConfig, TileContent, BlockType, TileAction } from
|
|
1
|
+
import type { ReactNode, CSSProperties } from 'react';
|
|
2
|
+
import type { TileConfig, TileContent, BlockType, TileAction } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Data passed to render props
|
|
5
5
|
*/
|
|
@@ -7,7 +7,7 @@ export interface RenderData {
|
|
|
7
7
|
tile: TileConfig;
|
|
8
8
|
content: TileContent;
|
|
9
9
|
isExpanded: boolean;
|
|
10
|
-
surface:
|
|
10
|
+
surface: 'overlay' | 'wheel';
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Default renderer function signature
|
|
@@ -66,7 +66,7 @@ export interface AppearanceConfig {
|
|
|
66
66
|
variables?: Partial<Record<`--sc-${string}`, string>>;
|
|
67
67
|
styles?: StyleOverrides;
|
|
68
68
|
classNames?: ClassNameOverrides;
|
|
69
|
-
baseTheme?:
|
|
69
|
+
baseTheme?: 'light' | 'dark' | 'system';
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Action handler for interactive elements
|
package/dist/runtime.d.ts
CHANGED
|
@@ -13,17 +13,17 @@
|
|
|
13
13
|
* GrowthBook's job is done at page load when it selects which config to deliver.
|
|
14
14
|
* The runtime receives the config and makes decisions using DecisionStrategy.
|
|
15
15
|
*/
|
|
16
|
-
import type { TelemetryClient } from
|
|
17
|
-
import { ContextManager } from
|
|
18
|
-
import { EventBus } from
|
|
19
|
-
import { StateStore } from
|
|
20
|
-
import type { DecisionStrategy, DecisionResult } from
|
|
21
|
-
import type { SessionMetricTracker } from
|
|
22
|
-
import type { RoutesConfig, TileConfig } from
|
|
23
|
-
import { type ActionEngine, ExecutorRegistry } from
|
|
24
|
-
import { type Surfaces } from
|
|
25
|
-
import { WidgetRegistry } from
|
|
26
|
-
import { AppRegistry } from
|
|
16
|
+
import type { TelemetryClient } from './telemetry/types';
|
|
17
|
+
import { ContextManager } from './context/ContextManager';
|
|
18
|
+
import { EventBus } from './events/EventBus';
|
|
19
|
+
import { StateStore } from './state/StateStore';
|
|
20
|
+
import type { DecisionStrategy, DecisionResult } from './decisions/types';
|
|
21
|
+
import type { SessionMetricTracker } from './metrics/sessionMetrics';
|
|
22
|
+
import type { RoutesConfig, TileConfig } from './types';
|
|
23
|
+
import { type ActionEngine, ExecutorRegistry } from './actions';
|
|
24
|
+
import { type Surfaces } from './surfaces';
|
|
25
|
+
import { WidgetRegistry } from './widgets';
|
|
26
|
+
import { AppRegistry } from './apps';
|
|
27
27
|
/**
|
|
28
28
|
* Runtime version.
|
|
29
29
|
*/
|
|
@@ -31,7 +31,7 @@ export declare const RUNTIME_VERSION = "2.0.0";
|
|
|
31
31
|
/**
|
|
32
32
|
* Runtime mode.
|
|
33
33
|
*/
|
|
34
|
-
export type RuntimeMode =
|
|
34
|
+
export type RuntimeMode = 'production' | 'development' | 'editor' | 'audit';
|
|
35
35
|
/**
|
|
36
36
|
* SmartCanvasRuntime interface.
|
|
37
37
|
*/
|
package/dist/runtime.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { createContextManager } from
|
|
2
|
-
import { createEventBus } from
|
|
3
|
-
import { createStateStore } from
|
|
4
|
-
import { createDecisionEngine } from
|
|
5
|
-
import { createActionEngine, executorRegistry } from
|
|
6
|
-
import { createSurfaces } from
|
|
7
|
-
import { ensureOverlayRoot } from
|
|
8
|
-
import { widgetRegistry as defaultWidgetRegistry } from
|
|
9
|
-
import { appRegistry as defaultAppRegistry } from
|
|
1
|
+
import { createContextManager } from './context/ContextManager';
|
|
2
|
+
import { createEventBus } from './events/EventBus';
|
|
3
|
+
import { createStateStore } from './state/StateStore';
|
|
4
|
+
import { createDecisionEngine } from './decisions/engine';
|
|
5
|
+
import { createActionEngine, executorRegistry, } from './actions';
|
|
6
|
+
import { createSurfaces } from './surfaces';
|
|
7
|
+
import { ensureOverlayRoot } from './overlays/runtime/overlay/root';
|
|
8
|
+
import { widgetRegistry as defaultWidgetRegistry } from './widgets';
|
|
9
|
+
import { appRegistry as defaultAppRegistry } from './apps';
|
|
10
10
|
/**
|
|
11
11
|
* Runtime version.
|
|
12
12
|
*/
|
|
13
|
-
export const RUNTIME_VERSION =
|
|
13
|
+
export const RUNTIME_VERSION = '2.0.0';
|
|
14
14
|
/**
|
|
15
15
|
* Check if a URL matches a route filter.
|
|
16
16
|
*/
|
|
@@ -26,7 +26,7 @@ function matchesRouteFilter(url, filter) {
|
|
|
26
26
|
pathname = url;
|
|
27
27
|
}
|
|
28
28
|
// Normalize pathname
|
|
29
|
-
const normalizedPath = pathname.replace(/\/$/,
|
|
29
|
+
const normalizedPath = pathname.replace(/\/$/, '') || '/';
|
|
30
30
|
// Check exclude patterns first
|
|
31
31
|
if (filter.exclude) {
|
|
32
32
|
for (const pattern of filter.exclude) {
|
|
@@ -51,16 +51,16 @@ function matchesRouteFilter(url, filter) {
|
|
|
51
51
|
* Match a pathname against a route pattern.
|
|
52
52
|
*/
|
|
53
53
|
function matchRoutePattern(pathname, pattern) {
|
|
54
|
-
const normalizedPattern = pattern.replace(/\/$/,
|
|
54
|
+
const normalizedPattern = pattern.replace(/\/$/, '') || '/';
|
|
55
55
|
// Exact match
|
|
56
56
|
if (pathname === normalizedPattern)
|
|
57
57
|
return true;
|
|
58
58
|
// Convert pattern to regex
|
|
59
59
|
const regexPattern = normalizedPattern
|
|
60
|
-
.replace(/[.+^${}()|[\]\\]/g,
|
|
61
|
-
.replace(/\*\*/g,
|
|
62
|
-
.replace(/\*/g,
|
|
63
|
-
.replace(/:[^/]+/g,
|
|
60
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex chars
|
|
61
|
+
.replace(/\*\*/g, '.*') // ** matches anything
|
|
62
|
+
.replace(/\*/g, '[^/]*') // * matches within path segment
|
|
63
|
+
.replace(/:[^/]+/g, '[^/]+'); // :param matches any segment
|
|
64
64
|
const regex = new RegExp(`^${regexPattern}$`);
|
|
65
65
|
return regex.test(pathname);
|
|
66
66
|
}
|
|
@@ -70,7 +70,7 @@ function matchRoutePattern(pathname, pattern) {
|
|
|
70
70
|
*/
|
|
71
71
|
function resolveAnchorById(anchorId, ctx) {
|
|
72
72
|
// First check if it's a data attribute selector
|
|
73
|
-
if (anchorId.startsWith(
|
|
73
|
+
if (anchorId.startsWith('[data-')) {
|
|
74
74
|
return document.querySelector(anchorId);
|
|
75
75
|
}
|
|
76
76
|
// Check anchors tracked in context
|
|
@@ -85,7 +85,7 @@ function resolveAnchorById(anchorId, ctx) {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
// Try as CSS selector (must start with . or # or [)
|
|
88
|
-
if (anchorId.startsWith(
|
|
88
|
+
if (anchorId.startsWith('.') || anchorId.startsWith('#') || anchorId.startsWith('[')) {
|
|
89
89
|
return document.querySelector(anchorId);
|
|
90
90
|
}
|
|
91
91
|
// Try as ID
|
|
@@ -100,7 +100,7 @@ function resolveAnchorById(anchorId, ctx) {
|
|
|
100
100
|
*/
|
|
101
101
|
export function createSmartCanvasRuntime(options = {}) {
|
|
102
102
|
var _a, _b, _c, _d;
|
|
103
|
-
const { telemetry, sessionMetrics, routes, mode =
|
|
103
|
+
const { telemetry, sessionMetrics, routes, mode = 'production', namespace } = options;
|
|
104
104
|
// Use provided registries or defaults
|
|
105
105
|
const widgets = (_a = options.widgets) !== null && _a !== void 0 ? _a : defaultWidgetRegistry;
|
|
106
106
|
const executors = (_b = options.executors) !== null && _b !== void 0 ? _b : executorRegistry;
|
|
@@ -192,7 +192,7 @@ export function createSmartCanvasRuntime(options = {}) {
|
|
|
192
192
|
destroy() {
|
|
193
193
|
// Unbind and clean up apps registry
|
|
194
194
|
apps.unbind().catch((err) => {
|
|
195
|
-
console.error(
|
|
195
|
+
console.error('[Runtime] Error unbinding apps registry:', err);
|
|
196
196
|
});
|
|
197
197
|
context.destroy();
|
|
198
198
|
actions.destroy();
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAc,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|