@scalebun-release/web 2.2.2
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/LICENSE +21 -0
- package/README.md +57 -0
- package/dist/bootstrap/FeatureRegistry.d.ts +44 -0
- package/dist/bootstrap/FeatureRegistry.d.ts.map +1 -0
- package/dist/bootstrap/FeatureRegistry.js +85 -0
- package/dist/bootstrap/FeatureRegistry.js.map +1 -0
- package/dist/bootstrap/SDKBootstrapper.d.ts +37 -0
- package/dist/bootstrap/SDKBootstrapper.d.ts.map +1 -0
- package/dist/bootstrap/SDKBootstrapper.js +346 -0
- package/dist/bootstrap/SDKBootstrapper.js.map +1 -0
- package/dist/browser.d.ts +51 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +86 -0
- package/dist/browser.js.map +1 -0
- package/dist/config/endpoints.d.ts +12 -0
- package/dist/config/endpoints.d.ts.map +1 -0
- package/dist/config/endpoints.js +12 -0
- package/dist/config/endpoints.js.map +1 -0
- package/dist/config/schema.d.ts +120 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +117 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/breadcrumbs.d.ts +56 -0
- package/dist/core/breadcrumbs.d.ts.map +1 -0
- package/dist/core/breadcrumbs.js +141 -0
- package/dist/core/breadcrumbs.js.map +1 -0
- package/dist/core/capabilities.d.ts +38 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/capabilities.js +78 -0
- package/dist/core/capabilities.js.map +1 -0
- package/dist/core/consent.d.ts +17 -0
- package/dist/core/consent.d.ts.map +1 -0
- package/dist/core/consent.js +38 -0
- package/dist/core/consent.js.map +1 -0
- package/dist/core/csp.d.ts +31 -0
- package/dist/core/csp.d.ts.map +1 -0
- package/dist/core/csp.js +74 -0
- package/dist/core/csp.js.map +1 -0
- package/dist/core/evalContext.d.ts +7 -0
- package/dist/core/evalContext.d.ts.map +1 -0
- package/dist/core/evalContext.js +22 -0
- package/dist/core/evalContext.js.map +1 -0
- package/dist/core/ids.d.ts +6 -0
- package/dist/core/ids.d.ts.map +1 -0
- package/dist/core/ids.js +35 -0
- package/dist/core/ids.js.map +1 -0
- package/dist/core/index.d.ts +16 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +16 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lifecycle.d.ts +4 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +24 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/logger.d.ts +12 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +14 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/observe.d.ts +3 -0
- package/dist/core/observe.d.ts.map +1 -0
- package/dist/core/observe.js +22 -0
- package/dist/core/observe.js.map +1 -0
- package/dist/core/pageContext.d.ts +13 -0
- package/dist/core/pageContext.d.ts.map +1 -0
- package/dist/core/pageContext.js +90 -0
- package/dist/core/pageContext.js.map +1 -0
- package/dist/core/prune.d.ts +31 -0
- package/dist/core/prune.d.ts.map +1 -0
- package/dist/core/prune.js +112 -0
- package/dist/core/prune.js.map +1 -0
- package/dist/core/redact.d.ts +15 -0
- package/dist/core/redact.d.ts.map +1 -0
- package/dist/core/redact.js +72 -0
- package/dist/core/redact.js.map +1 -0
- package/dist/core/replayCoord.d.ts +22 -0
- package/dist/core/replayCoord.d.ts.map +1 -0
- package/dist/core/replayCoord.js +20 -0
- package/dist/core/replayCoord.js.map +1 -0
- package/dist/core/retry.d.ts +25 -0
- package/dist/core/retry.d.ts.map +1 -0
- package/dist/core/retry.js +44 -0
- package/dist/core/retry.js.map +1 -0
- package/dist/core/runtime.d.ts +28 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +67 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/scrollDepth.d.ts +48 -0
- package/dist/core/scrollDepth.d.ts.map +1 -0
- package/dist/core/scrollDepth.js +63 -0
- package/dist/core/scrollDepth.js.map +1 -0
- package/dist/core/uiStateReader.d.ts +35 -0
- package/dist/core/uiStateReader.d.ts.map +1 -0
- package/dist/core/uiStateReader.js +47 -0
- package/dist/core/uiStateReader.js.map +1 -0
- package/dist/core/version.generated.d.ts +9 -0
- package/dist/core/version.generated.d.ts.map +1 -0
- package/dist/core/version.generated.js +9 -0
- package/dist/core/version.generated.js.map +1 -0
- package/dist/debug/index.d.ts +6 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug/index.js +2 -0
- package/dist/debug/index.js.map +1 -0
- package/dist/features/analytics/AnalyticsFeature.d.ts +123 -0
- package/dist/features/analytics/AnalyticsFeature.d.ts.map +1 -0
- package/dist/features/analytics/AnalyticsFeature.js +785 -0
- package/dist/features/analytics/AnalyticsFeature.js.map +1 -0
- package/dist/features/analytics/autocapture.d.ts +13 -0
- package/dist/features/analytics/autocapture.d.ts.map +1 -0
- package/dist/features/analytics/autocapture.js +436 -0
- package/dist/features/analytics/autocapture.js.map +1 -0
- package/dist/features/analytics/governance.d.ts +15 -0
- package/dist/features/analytics/governance.d.ts.map +1 -0
- package/dist/features/analytics/governance.js +30 -0
- package/dist/features/analytics/governance.js.map +1 -0
- package/dist/features/analytics/revenue.d.ts +77 -0
- package/dist/features/analytics/revenue.d.ts.map +1 -0
- package/dist/features/analytics/revenue.js +56 -0
- package/dist/features/analytics/revenue.js.map +1 -0
- package/dist/features/analytics/sampler.d.ts +2 -0
- package/dist/features/analytics/sampler.d.ts.map +1 -0
- package/dist/features/analytics/sampler.js +24 -0
- package/dist/features/analytics/sampler.js.map +1 -0
- package/dist/features/analytics/subscription.d.ts +35 -0
- package/dist/features/analytics/subscription.d.ts.map +1 -0
- package/dist/features/analytics/subscription.js +95 -0
- package/dist/features/analytics/subscription.js.map +1 -0
- package/dist/features/attention/index.d.ts +29 -0
- package/dist/features/attention/index.d.ts.map +1 -0
- package/dist/features/attention/index.js +128 -0
- package/dist/features/attention/index.js.map +1 -0
- package/dist/features/bugreport/BugReportFeature.d.ts +37 -0
- package/dist/features/bugreport/BugReportFeature.d.ts.map +1 -0
- package/dist/features/bugreport/BugReportFeature.js +56 -0
- package/dist/features/bugreport/BugReportFeature.js.map +1 -0
- package/dist/features/bugreport/collect.d.ts +33 -0
- package/dist/features/bugreport/collect.d.ts.map +1 -0
- package/dist/features/bugreport/collect.js +30 -0
- package/dist/features/bugreport/collect.js.map +1 -0
- package/dist/features/bugreport/widget.d.ts +40 -0
- package/dist/features/bugreport/widget.d.ts.map +1 -0
- package/dist/features/bugreport/widget.js +145 -0
- package/dist/features/bugreport/widget.js.map +1 -0
- package/dist/features/coach/CoachmarkFeature.d.ts +78 -0
- package/dist/features/coach/CoachmarkFeature.d.ts.map +1 -0
- package/dist/features/coach/CoachmarkFeature.js +161 -0
- package/dist/features/coach/CoachmarkFeature.js.map +1 -0
- package/dist/features/coach/anchor.d.ts +32 -0
- package/dist/features/coach/anchor.d.ts.map +1 -0
- package/dist/features/coach/anchor.js +128 -0
- package/dist/features/coach/anchor.js.map +1 -0
- package/dist/features/coach/observers.d.ts +17 -0
- package/dist/features/coach/observers.d.ts.map +1 -0
- package/dist/features/coach/observers.js +49 -0
- package/dist/features/coach/observers.js.map +1 -0
- package/dist/features/coach/overlay.d.ts +15 -0
- package/dist/features/coach/overlay.d.ts.map +1 -0
- package/dist/features/coach/overlay.js +205 -0
- package/dist/features/coach/overlay.js.map +1 -0
- package/dist/features/coach/position.d.ts +9 -0
- package/dist/features/coach/position.d.ts.map +1 -0
- package/dist/features/coach/position.js +83 -0
- package/dist/features/coach/position.js.map +1 -0
- package/dist/features/coach/predicate.d.ts +10 -0
- package/dist/features/coach/predicate.d.ts.map +1 -0
- package/dist/features/coach/predicate.js +36 -0
- package/dist/features/coach/predicate.js.map +1 -0
- package/dist/features/coach/tour.d.ts +55 -0
- package/dist/features/coach/tour.d.ts.map +1 -0
- package/dist/features/coach/tour.js +181 -0
- package/dist/features/coach/tour.js.map +1 -0
- package/dist/features/coach/types.d.ts +161 -0
- package/dist/features/coach/types.d.ts.map +1 -0
- package/dist/features/coach/types.js +2 -0
- package/dist/features/coach/types.js.map +1 -0
- package/dist/features/coach/wait.d.ts +34 -0
- package/dist/features/coach/wait.d.ts.map +1 -0
- package/dist/features/coach/wait.js +107 -0
- package/dist/features/coach/wait.js.map +1 -0
- package/dist/features/config/ConfigFeature.d.ts +117 -0
- package/dist/features/config/ConfigFeature.d.ts.map +1 -0
- package/dist/features/config/ConfigFeature.js +437 -0
- package/dist/features/config/ConfigFeature.js.map +1 -0
- package/dist/features/config/bucketing.d.ts +20 -0
- package/dist/features/config/bucketing.d.ts.map +1 -0
- package/dist/features/config/bucketing.js +37 -0
- package/dist/features/config/bucketing.js.map +1 -0
- package/dist/features/config/configStore.d.ts +11 -0
- package/dist/features/config/configStore.d.ts.map +1 -0
- package/dist/features/config/configStore.js +66 -0
- package/dist/features/config/configStore.js.map +1 -0
- package/dist/features/config/targeting.d.ts +11 -0
- package/dist/features/config/targeting.d.ts.map +1 -0
- package/dist/features/config/targeting.js +57 -0
- package/dist/features/config/targeting.js.map +1 -0
- package/dist/features/config/types.d.ts +100 -0
- package/dist/features/config/types.d.ts.map +1 -0
- package/dist/features/config/types.js +9 -0
- package/dist/features/config/types.js.map +1 -0
- package/dist/features/console/ConsoleFeature.d.ts +31 -0
- package/dist/features/console/ConsoleFeature.d.ts.map +1 -0
- package/dist/features/console/ConsoleFeature.js +98 -0
- package/dist/features/console/ConsoleFeature.js.map +1 -0
- package/dist/features/console/normalize.d.ts +18 -0
- package/dist/features/console/normalize.d.ts.map +1 -0
- package/dist/features/console/normalize.js +64 -0
- package/dist/features/console/normalize.js.map +1 -0
- package/dist/features/console/serialize.d.ts +24 -0
- package/dist/features/console/serialize.d.ts.map +1 -0
- package/dist/features/console/serialize.js +99 -0
- package/dist/features/console/serialize.js.map +1 -0
- package/dist/features/console/throttle.d.ts +27 -0
- package/dist/features/console/throttle.d.ts.map +1 -0
- package/dist/features/console/throttle.js +37 -0
- package/dist/features/console/throttle.js.map +1 -0
- package/dist/features/crash/CrashFeature.d.ts +46 -0
- package/dist/features/crash/CrashFeature.d.ts.map +1 -0
- package/dist/features/crash/CrashFeature.js +173 -0
- package/dist/features/crash/CrashFeature.js.map +1 -0
- package/dist/features/crash/liveness.d.ts +30 -0
- package/dist/features/crash/liveness.d.ts.map +1 -0
- package/dist/features/crash/liveness.js +131 -0
- package/dist/features/crash/liveness.js.map +1 -0
- package/dist/features/engage/EngageFeature.d.ts +67 -0
- package/dist/features/engage/EngageFeature.d.ts.map +1 -0
- package/dist/features/engage/EngageFeature.js +243 -0
- package/dist/features/engage/EngageFeature.js.map +1 -0
- package/dist/features/engage/attachments.d.ts +24 -0
- package/dist/features/engage/attachments.d.ts.map +1 -0
- package/dist/features/engage/attachments.js +209 -0
- package/dist/features/engage/attachments.js.map +1 -0
- package/dist/features/engage/gameLogic.d.ts +60 -0
- package/dist/features/engage/gameLogic.d.ts.map +1 -0
- package/dist/features/engage/gameLogic.js +213 -0
- package/dist/features/engage/gameLogic.js.map +1 -0
- package/dist/features/engage/gameResolver.d.ts +35 -0
- package/dist/features/engage/gameResolver.d.ts.map +1 -0
- package/dist/features/engage/gameResolver.js +81 -0
- package/dist/features/engage/gameResolver.js.map +1 -0
- package/dist/features/engage/gameTypes.d.ts +76 -0
- package/dist/features/engage/gameTypes.d.ts.map +1 -0
- package/dist/features/engage/gameTypes.js +17 -0
- package/dist/features/engage/gameTypes.js.map +1 -0
- package/dist/features/engage/inappSlots.d.ts +39 -0
- package/dist/features/engage/inappSlots.d.ts.map +1 -0
- package/dist/features/engage/inappSlots.js +50 -0
- package/dist/features/engage/inappSlots.js.map +1 -0
- package/dist/features/engage/normalize.d.ts +11 -0
- package/dist/features/engage/normalize.d.ts.map +1 -0
- package/dist/features/engage/normalize.js +210 -0
- package/dist/features/engage/normalize.js.map +1 -0
- package/dist/features/engage/richInApp.d.ts +64 -0
- package/dist/features/engage/richInApp.d.ts.map +1 -0
- package/dist/features/engage/richInApp.js +1082 -0
- package/dist/features/engage/richInApp.js.map +1 -0
- package/dist/features/engage/runtime.d.ts +89 -0
- package/dist/features/engage/runtime.d.ts.map +1 -0
- package/dist/features/engage/runtime.js +364 -0
- package/dist/features/engage/runtime.js.map +1 -0
- package/dist/features/engage/shakeDetector.d.ts +6 -0
- package/dist/features/engage/shakeDetector.d.ts.map +1 -0
- package/dist/features/engage/shakeDetector.js +105 -0
- package/dist/features/engage/shakeDetector.js.map +1 -0
- package/dist/features/engage/theme.d.ts +129 -0
- package/dist/features/engage/theme.d.ts.map +1 -0
- package/dist/features/engage/theme.js +270 -0
- package/dist/features/engage/theme.js.map +1 -0
- package/dist/features/engage/throttle.d.ts +41 -0
- package/dist/features/engage/throttle.d.ts.map +1 -0
- package/dist/features/engage/throttle.js +220 -0
- package/dist/features/engage/throttle.js.map +1 -0
- package/dist/features/engage/transport.d.ts +62 -0
- package/dist/features/engage/transport.d.ts.map +1 -0
- package/dist/features/engage/transport.js +185 -0
- package/dist/features/engage/transport.js.map +1 -0
- package/dist/features/engage/triggerEngine.d.ts +39 -0
- package/dist/features/engage/triggerEngine.d.ts.map +1 -0
- package/dist/features/engage/triggerEngine.js +105 -0
- package/dist/features/engage/triggerEngine.js.map +1 -0
- package/dist/features/engage/types.d.ts +271 -0
- package/dist/features/engage/types.d.ts.map +1 -0
- package/dist/features/engage/types.js +3 -0
- package/dist/features/engage/types.js.map +1 -0
- package/dist/features/engage/widget/InAppWidget.d.ts +10 -0
- package/dist/features/engage/widget/InAppWidget.d.ts.map +1 -0
- package/dist/features/engage/widget/InAppWidget.js +137 -0
- package/dist/features/engage/widget/InAppWidget.js.map +1 -0
- package/dist/features/engage/widget/SurveyWidget.d.ts +11 -0
- package/dist/features/engage/widget/SurveyWidget.d.ts.map +1 -0
- package/dist/features/engage/widget/SurveyWidget.js +547 -0
- package/dist/features/engage/widget/SurveyWidget.js.map +1 -0
- package/dist/features/errors/ErrorsFeature.d.ts +62 -0
- package/dist/features/errors/ErrorsFeature.d.ts.map +1 -0
- package/dist/features/errors/ErrorsFeature.js +209 -0
- package/dist/features/errors/ErrorsFeature.js.map +1 -0
- package/dist/features/errors/causes.d.ts +15 -0
- package/dist/features/errors/causes.d.ts.map +1 -0
- package/dist/features/errors/causes.js +29 -0
- package/dist/features/errors/causes.js.map +1 -0
- package/dist/features/errors/dedup.d.ts +28 -0
- package/dist/features/errors/dedup.d.ts.map +1 -0
- package/dist/features/errors/dedup.js +42 -0
- package/dist/features/errors/dedup.js.map +1 -0
- package/dist/features/errors/group/fingerprint.d.ts +13 -0
- package/dist/features/errors/group/fingerprint.d.ts.map +1 -0
- package/dist/features/errors/group/fingerprint.js +45 -0
- package/dist/features/errors/group/fingerprint.js.map +1 -0
- package/dist/features/errors/lazy.d.ts +8 -0
- package/dist/features/errors/lazy.d.ts.map +1 -0
- package/dist/features/errors/lazy.js +8 -0
- package/dist/features/errors/lazy.js.map +1 -0
- package/dist/features/errors/normalize.d.ts +26 -0
- package/dist/features/errors/normalize.d.ts.map +1 -0
- package/dist/features/errors/normalize.js +58 -0
- package/dist/features/errors/normalize.js.map +1 -0
- package/dist/features/errors/parse/stacktrace.d.ts +13 -0
- package/dist/features/errors/parse/stacktrace.d.ts.map +1 -0
- package/dist/features/errors/parse/stacktrace.js +85 -0
- package/dist/features/errors/parse/stacktrace.js.map +1 -0
- package/dist/features/errors/redact.d.ts +7 -0
- package/dist/features/errors/redact.d.ts.map +1 -0
- package/dist/features/errors/redact.js +39 -0
- package/dist/features/errors/redact.js.map +1 -0
- package/dist/features/errors/sampling.d.ts +2 -0
- package/dist/features/errors/sampling.d.ts.map +1 -0
- package/dist/features/errors/sampling.js +24 -0
- package/dist/features/errors/sampling.js.map +1 -0
- package/dist/features/errors/scope.d.ts +26 -0
- package/dist/features/errors/scope.d.ts.map +1 -0
- package/dist/features/errors/scope.js +30 -0
- package/dist/features/errors/scope.js.map +1 -0
- package/dist/features/exit-intent/ExitIntentFeature.d.ts +16 -0
- package/dist/features/exit-intent/ExitIntentFeature.d.ts.map +1 -0
- package/dist/features/exit-intent/ExitIntentFeature.js +25 -0
- package/dist/features/exit-intent/ExitIntentFeature.js.map +1 -0
- package/dist/features/exit-intent/engine.d.ts +127 -0
- package/dist/features/exit-intent/engine.d.ts.map +1 -0
- package/dist/features/exit-intent/engine.js +227 -0
- package/dist/features/exit-intent/engine.js.map +1 -0
- package/dist/features/forms/index.d.ts +83 -0
- package/dist/features/forms/index.d.ts.map +1 -0
- package/dist/features/forms/index.js +405 -0
- package/dist/features/forms/index.js.map +1 -0
- package/dist/features/inapp/InApp2Feature.d.ts +24 -0
- package/dist/features/inapp/InApp2Feature.d.ts.map +1 -0
- package/dist/features/inapp/InApp2Feature.js +44 -0
- package/dist/features/inapp/InApp2Feature.js.map +1 -0
- package/dist/features/inapp/a11y/focus.d.ts +24 -0
- package/dist/features/inapp/a11y/focus.d.ts.map +1 -0
- package/dist/features/inapp/a11y/focus.js +112 -0
- package/dist/features/inapp/a11y/focus.js.map +1 -0
- package/dist/features/inapp/anchor/controller.d.ts +64 -0
- package/dist/features/inapp/anchor/controller.d.ts.map +1 -0
- package/dist/features/inapp/anchor/controller.js +155 -0
- package/dist/features/inapp/anchor/controller.js.map +1 -0
- package/dist/features/inapp/api.d.ts +28 -0
- package/dist/features/inapp/api.d.ts.map +1 -0
- package/dist/features/inapp/api.js +41 -0
- package/dist/features/inapp/api.js.map +1 -0
- package/dist/features/inapp/blocks/blocks.d.ts +65 -0
- package/dist/features/inapp/blocks/blocks.d.ts.map +1 -0
- package/dist/features/inapp/blocks/blocks.js +196 -0
- package/dist/features/inapp/blocks/blocks.js.map +1 -0
- package/dist/features/inapp/blocks/feedback.d.ts +13 -0
- package/dist/features/inapp/blocks/feedback.d.ts.map +1 -0
- package/dist/features/inapp/blocks/feedback.js +154 -0
- package/dist/features/inapp/blocks/feedback.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/carousel.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/carousel.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/carousel.js +67 -0
- package/dist/features/inapp/blocks/heavy/carousel.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/chart.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/chart.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/chart.js +83 -0
- package/dist/features/inapp/blocks/heavy/chart.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/code.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/code.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/code.js +47 -0
- package/dist/features/inapp/blocks/heavy/code.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/confetti.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/confetti.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/confetti.js +76 -0
- package/dist/features/inapp/blocks/heavy/confetti.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/countdown.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/countdown.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/countdown.js +59 -0
- package/dist/features/inapp/blocks/heavy/countdown.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/index.d.ts +11 -0
- package/dist/features/inapp/blocks/heavy/index.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/index.js +45 -0
- package/dist/features/inapp/blocks/heavy/index.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/markdown.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/markdown.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/markdown.js +76 -0
- package/dist/features/inapp/blocks/heavy/markdown.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/productgrid.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/productgrid.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/productgrid.js +46 -0
- package/dist/features/inapp/blocks/heavy/productgrid.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/qr.d.ts +10 -0
- package/dist/features/inapp/blocks/heavy/qr.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/qr.js +69 -0
- package/dist/features/inapp/blocks/heavy/qr.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/scratch.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/scratch.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/scratch.js +141 -0
- package/dist/features/inapp/blocks/heavy/scratch.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/slot.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/slot.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/slot.js +96 -0
- package/dist/features/inapp/blocks/heavy/slot.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/spinwheel.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/spinwheel.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/spinwheel.js +127 -0
- package/dist/features/inapp/blocks/heavy/spinwheel.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/steps.d.ts +27 -0
- package/dist/features/inapp/blocks/heavy/steps.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/steps.js +135 -0
- package/dist/features/inapp/blocks/heavy/steps.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/streak.d.ts +18 -0
- package/dist/features/inapp/blocks/heavy/streak.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/streak.js +52 -0
- package/dist/features/inapp/blocks/heavy/streak.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/table.d.ts +7 -0
- package/dist/features/inapp/blocks/heavy/table.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/table.js +30 -0
- package/dist/features/inapp/blocks/heavy/table.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/unavailable.d.ts +28 -0
- package/dist/features/inapp/blocks/heavy/unavailable.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/unavailable.js +33 -0
- package/dist/features/inapp/blocks/heavy/unavailable.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/video.d.ts +7 -0
- package/dist/features/inapp/blocks/heavy/video.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/video.js +38 -0
- package/dist/features/inapp/blocks/heavy/video.js.map +1 -0
- package/dist/features/inapp/blocks/styles.d.ts +7 -0
- package/dist/features/inapp/blocks/styles.d.ts.map +1 -0
- package/dist/features/inapp/blocks/styles.js +225 -0
- package/dist/features/inapp/blocks/styles.js.map +1 -0
- package/dist/features/inapp/center/bridge.d.ts +12 -0
- package/dist/features/inapp/center/bridge.d.ts.map +1 -0
- package/dist/features/inapp/center/bridge.js +59 -0
- package/dist/features/inapp/center/bridge.js.map +1 -0
- package/dist/features/inapp/center/panel.d.ts +20 -0
- package/dist/features/inapp/center/panel.d.ts.map +1 -0
- package/dist/features/inapp/center/panel.js +228 -0
- package/dist/features/inapp/center/panel.js.map +1 -0
- package/dist/features/inapp/center/store.d.ts +50 -0
- package/dist/features/inapp/center/store.d.ts.map +1 -0
- package/dist/features/inapp/center/store.js +188 -0
- package/dist/features/inapp/center/store.js.map +1 -0
- package/dist/features/inapp/center/sync.d.ts +32 -0
- package/dist/features/inapp/center/sync.d.ts.map +1 -0
- package/dist/features/inapp/center/sync.js +60 -0
- package/dist/features/inapp/center/sync.js.map +1 -0
- package/dist/features/inapp/center/types.d.ts +46 -0
- package/dist/features/inapp/center/types.d.ts.map +1 -0
- package/dist/features/inapp/center/types.js +5 -0
- package/dist/features/inapp/center/types.js.map +1 -0
- package/dist/features/inapp/core/analytics.d.ts +35 -0
- package/dist/features/inapp/core/analytics.d.ts.map +1 -0
- package/dist/features/inapp/core/analytics.js +70 -0
- package/dist/features/inapp/core/analytics.js.map +1 -0
- package/dist/features/inapp/core/compat.d.ts +28 -0
- package/dist/features/inapp/core/compat.d.ts.map +1 -0
- package/dist/features/inapp/core/compat.js +104 -0
- package/dist/features/inapp/core/compat.js.map +1 -0
- package/dist/features/inapp/core/debugOverlay.d.ts +5 -0
- package/dist/features/inapp/core/debugOverlay.d.ts.map +1 -0
- package/dist/features/inapp/core/debugOverlay.js +79 -0
- package/dist/features/inapp/core/debugOverlay.js.map +1 -0
- package/dist/features/inapp/core/engine.d.ts +72 -0
- package/dist/features/inapp/core/engine.d.ts.map +1 -0
- package/dist/features/inapp/core/engine.js +248 -0
- package/dist/features/inapp/core/engine.js.map +1 -0
- package/dist/features/inapp/core/environment.d.ts +21 -0
- package/dist/features/inapp/core/environment.d.ts.map +1 -0
- package/dist/features/inapp/core/environment.js +57 -0
- package/dist/features/inapp/core/environment.js.map +1 -0
- package/dist/features/inapp/core/host.d.ts +53 -0
- package/dist/features/inapp/core/host.d.ts.map +1 -0
- package/dist/features/inapp/core/host.js +243 -0
- package/dist/features/inapp/core/host.js.map +1 -0
- package/dist/features/inapp/core/keyboard.d.ts +27 -0
- package/dist/features/inapp/core/keyboard.d.ts.map +1 -0
- package/dist/features/inapp/core/keyboard.js +69 -0
- package/dist/features/inapp/core/keyboard.js.map +1 -0
- package/dist/features/inapp/core/metrics.d.ts +73 -0
- package/dist/features/inapp/core/metrics.d.ts.map +1 -0
- package/dist/features/inapp/core/metrics.js +125 -0
- package/dist/features/inapp/core/metrics.js.map +1 -0
- package/dist/features/inapp/core/migration.d.ts +32 -0
- package/dist/features/inapp/core/migration.d.ts.map +1 -0
- package/dist/features/inapp/core/migration.js +28 -0
- package/dist/features/inapp/core/migration.js.map +1 -0
- package/dist/features/inapp/core/orchestrator.d.ts +77 -0
- package/dist/features/inapp/core/orchestrator.d.ts.map +1 -0
- package/dist/features/inapp/core/orchestrator.js +144 -0
- package/dist/features/inapp/core/orchestrator.js.map +1 -0
- package/dist/features/inapp/core/respect.d.ts +51 -0
- package/dist/features/inapp/core/respect.d.ts.map +1 -0
- package/dist/features/inapp/core/respect.js +78 -0
- package/dist/features/inapp/core/respect.js.map +1 -0
- package/dist/features/inapp/core/slots.d.ts +19 -0
- package/dist/features/inapp/core/slots.d.ts.map +1 -0
- package/dist/features/inapp/core/slots.js +53 -0
- package/dist/features/inapp/core/slots.js.map +1 -0
- package/dist/features/inapp/core/targeting.d.ts +85 -0
- package/dist/features/inapp/core/targeting.d.ts.map +1 -0
- package/dist/features/inapp/core/targeting.js +255 -0
- package/dist/features/inapp/core/targeting.js.map +1 -0
- package/dist/features/inapp/core/transport.d.ts +66 -0
- package/dist/features/inapp/core/transport.d.ts.map +1 -0
- package/dist/features/inapp/core/transport.js +154 -0
- package/dist/features/inapp/core/transport.js.map +1 -0
- package/dist/features/inapp/core/triggers.d.ts +94 -0
- package/dist/features/inapp/core/triggers.d.ts.map +1 -0
- package/dist/features/inapp/core/triggers.js +368 -0
- package/dist/features/inapp/core/triggers.js.map +1 -0
- package/dist/features/inapp/inappContract.web.d.ts +47 -0
- package/dist/features/inapp/inappContract.web.d.ts.map +1 -0
- package/dist/features/inapp/inappContract.web.js +230 -0
- package/dist/features/inapp/inappContract.web.js.map +1 -0
- package/dist/features/inapp/index.d.ts +23 -0
- package/dist/features/inapp/index.d.ts.map +1 -0
- package/dist/features/inapp/index.js +23 -0
- package/dist/features/inapp/index.js.map +1 -0
- package/dist/features/inapp/registry.canonical.hash.d.ts +7 -0
- package/dist/features/inapp/registry.canonical.hash.d.ts.map +1 -0
- package/dist/features/inapp/registry.canonical.hash.js +7 -0
- package/dist/features/inapp/registry.canonical.hash.js.map +1 -0
- package/dist/features/inapp/registry.web.canonical.d.ts +21 -0
- package/dist/features/inapp/registry.web.canonical.d.ts.map +1 -0
- package/dist/features/inapp/registry.web.canonical.js +136 -0
- package/dist/features/inapp/registry.web.canonical.js.map +1 -0
- package/dist/features/inapp/registry.web.catalog.d.ts +12 -0
- package/dist/features/inapp/registry.web.catalog.d.ts.map +1 -0
- package/dist/features/inapp/registry.web.catalog.js +208 -0
- package/dist/features/inapp/registry.web.catalog.js.map +1 -0
- package/dist/features/inapp/surfaces/banner.d.ts +7 -0
- package/dist/features/inapp/surfaces/banner.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/banner.js +30 -0
- package/dist/features/inapp/surfaces/banner.js.map +1 -0
- package/dist/features/inapp/surfaces/checklist.d.ts +13 -0
- package/dist/features/inapp/surfaces/checklist.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/checklist.js +127 -0
- package/dist/features/inapp/surfaces/checklist.js.map +1 -0
- package/dist/features/inapp/surfaces/coachmark.d.ts +10 -0
- package/dist/features/inapp/surfaces/coachmark.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/coachmark.js +95 -0
- package/dist/features/inapp/surfaces/coachmark.js.map +1 -0
- package/dist/features/inapp/surfaces/hotspot.d.ts +8 -0
- package/dist/features/inapp/surfaces/hotspot.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/hotspot.js +91 -0
- package/dist/features/inapp/surfaces/hotspot.js.map +1 -0
- package/dist/features/inapp/surfaces/inline.d.ts +13 -0
- package/dist/features/inapp/surfaces/inline.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/inline.js +78 -0
- package/dist/features/inapp/surfaces/inline.js.map +1 -0
- package/dist/features/inapp/surfaces/launcher.d.ts +9 -0
- package/dist/features/inapp/surfaces/launcher.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/launcher.js +54 -0
- package/dist/features/inapp/surfaces/launcher.js.map +1 -0
- package/dist/features/inapp/surfaces/modal.d.ts +8 -0
- package/dist/features/inapp/surfaces/modal.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/modal.js +70 -0
- package/dist/features/inapp/surfaces/modal.js.map +1 -0
- package/dist/features/inapp/surfaces/mount.d.ts +19 -0
- package/dist/features/inapp/surfaces/mount.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/mount.js +29 -0
- package/dist/features/inapp/surfaces/mount.js.map +1 -0
- package/dist/features/inapp/surfaces/palette.d.ts +9 -0
- package/dist/features/inapp/surfaces/palette.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/palette.js +127 -0
- package/dist/features/inapp/surfaces/palette.js.map +1 -0
- package/dist/features/inapp/surfaces/panel.d.ts +14 -0
- package/dist/features/inapp/surfaces/panel.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/panel.js +91 -0
- package/dist/features/inapp/surfaces/panel.js.map +1 -0
- package/dist/features/inapp/surfaces/popover.d.ts +10 -0
- package/dist/features/inapp/surfaces/popover.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/popover.js +69 -0
- package/dist/features/inapp/surfaces/popover.js.map +1 -0
- package/dist/features/inapp/surfaces/render.d.ts +34 -0
- package/dist/features/inapp/surfaces/render.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/render.js +56 -0
- package/dist/features/inapp/surfaces/render.js.map +1 -0
- package/dist/features/inapp/surfaces/slideover.d.ts +9 -0
- package/dist/features/inapp/surfaces/slideover.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/slideover.js +144 -0
- package/dist/features/inapp/surfaces/slideover.js.map +1 -0
- package/dist/features/inapp/surfaces/styles.d.ts +7 -0
- package/dist/features/inapp/surfaces/styles.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/styles.js +235 -0
- package/dist/features/inapp/surfaces/styles.js.map +1 -0
- package/dist/features/inapp/surfaces/surface.d.ts +69 -0
- package/dist/features/inapp/surfaces/surface.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/surface.js +80 -0
- package/dist/features/inapp/surfaces/surface.js.map +1 -0
- package/dist/features/inapp/surfaces/takeover.d.ts +9 -0
- package/dist/features/inapp/surfaces/takeover.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/takeover.js +60 -0
- package/dist/features/inapp/surfaces/takeover.js.map +1 -0
- package/dist/features/inapp/surfaces/toast.d.ts +7 -0
- package/dist/features/inapp/surfaces/toast.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/toast.js +48 -0
- package/dist/features/inapp/surfaces/toast.js.map +1 -0
- package/dist/features/inapp/surfaces/toolbar.d.ts +8 -0
- package/dist/features/inapp/surfaces/toolbar.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/toolbar.js +65 -0
- package/dist/features/inapp/surfaces/toolbar.js.map +1 -0
- package/dist/features/inapp/surfaces/tour.d.ts +14 -0
- package/dist/features/inapp/surfaces/tour.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/tour.js +202 -0
- package/dist/features/inapp/surfaces/tour.js.map +1 -0
- package/dist/features/inapp/types.d.ts +165 -0
- package/dist/features/inapp/types.d.ts.map +1 -0
- package/dist/features/inapp/types.js +12 -0
- package/dist/features/inapp/types.js.map +1 -0
- package/dist/features/inbox/InboxFeature.d.ts +57 -0
- package/dist/features/inbox/InboxFeature.d.ts.map +1 -0
- package/dist/features/inbox/InboxFeature.js +225 -0
- package/dist/features/inbox/InboxFeature.js.map +1 -0
- package/dist/features/inbox/runtime.d.ts +67 -0
- package/dist/features/inbox/runtime.d.ts.map +1 -0
- package/dist/features/inbox/runtime.js +376 -0
- package/dist/features/inbox/runtime.js.map +1 -0
- package/dist/features/inbox/store.d.ts +37 -0
- package/dist/features/inbox/store.d.ts.map +1 -0
- package/dist/features/inbox/store.js +149 -0
- package/dist/features/inbox/store.js.map +1 -0
- package/dist/features/inbox/sync.d.ts +49 -0
- package/dist/features/inbox/sync.d.ts.map +1 -0
- package/dist/features/inbox/sync.js +131 -0
- package/dist/features/inbox/sync.js.map +1 -0
- package/dist/features/inbox/types.d.ts +275 -0
- package/dist/features/inbox/types.d.ts.map +1 -0
- package/dist/features/inbox/types.js +42 -0
- package/dist/features/inbox/types.js.map +1 -0
- package/dist/features/inbox/widget/InboxWidget.d.ts +16 -0
- package/dist/features/inbox/widget/InboxWidget.d.ts.map +1 -0
- package/dist/features/inbox/widget/InboxWidget.js +609 -0
- package/dist/features/inbox/widget/InboxWidget.js.map +1 -0
- package/dist/features/index.d.ts +21 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +2 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/journey/InteractionTracker.d.ts +87 -0
- package/dist/features/journey/InteractionTracker.d.ts.map +1 -0
- package/dist/features/journey/InteractionTracker.js +466 -0
- package/dist/features/journey/InteractionTracker.js.map +1 -0
- package/dist/features/journey/JourneyFeature.d.ts +18 -0
- package/dist/features/journey/JourneyFeature.d.ts.map +1 -0
- package/dist/features/journey/JourneyFeature.js +71 -0
- package/dist/features/journey/JourneyFeature.js.map +1 -0
- package/dist/features/journey/NavigationTracker.d.ts +16 -0
- package/dist/features/journey/NavigationTracker.d.ts.map +1 -0
- package/dist/features/journey/NavigationTracker.js +92 -0
- package/dist/features/journey/NavigationTracker.js.map +1 -0
- package/dist/features/journey/friction.d.ts +28 -0
- package/dist/features/journey/friction.d.ts.map +1 -0
- package/dist/features/journey/friction.js +64 -0
- package/dist/features/journey/friction.js.map +1 -0
- package/dist/features/journey/positionContext.d.ts +30 -0
- package/dist/features/journey/positionContext.d.ts.map +1 -0
- package/dist/features/journey/positionContext.js +116 -0
- package/dist/features/journey/positionContext.js.map +1 -0
- package/dist/features/journey/uiState.d.ts +44 -0
- package/dist/features/journey/uiState.d.ts.map +1 -0
- package/dist/features/journey/uiState.js +158 -0
- package/dist/features/journey/uiState.js.map +1 -0
- package/dist/features/manifest.d.ts +41 -0
- package/dist/features/manifest.d.ts.map +1 -0
- package/dist/features/manifest.js +93 -0
- package/dist/features/manifest.js.map +1 -0
- package/dist/features/network/NetworkFeature.d.ts +60 -0
- package/dist/features/network/NetworkFeature.d.ts.map +1 -0
- package/dist/features/network/NetworkFeature.js +260 -0
- package/dist/features/network/NetworkFeature.js.map +1 -0
- package/dist/features/network/capture/body.d.ts +31 -0
- package/dist/features/network/capture/body.d.ts.map +1 -0
- package/dist/features/network/capture/body.js +81 -0
- package/dist/features/network/capture/body.js.map +1 -0
- package/dist/features/network/classify.d.ts +21 -0
- package/dist/features/network/classify.d.ts.map +1 -0
- package/dist/features/network/classify.js +50 -0
- package/dist/features/network/classify.js.map +1 -0
- package/dist/features/network/dedup.d.ts +36 -0
- package/dist/features/network/dedup.d.ts.map +1 -0
- package/dist/features/network/dedup.js +68 -0
- package/dist/features/network/dedup.js.map +1 -0
- package/dist/features/network/fetchInterceptor.d.ts +20 -0
- package/dist/features/network/fetchInterceptor.d.ts.map +1 -0
- package/dist/features/network/fetchInterceptor.js +158 -0
- package/dist/features/network/fetchInterceptor.js.map +1 -0
- package/dist/features/network/intercept/beacon.d.ts +14 -0
- package/dist/features/network/intercept/beacon.d.ts.map +1 -0
- package/dist/features/network/intercept/beacon.js +56 -0
- package/dist/features/network/intercept/beacon.js.map +1 -0
- package/dist/features/network/intercept/sse.d.ts +16 -0
- package/dist/features/network/intercept/sse.d.ts.map +1 -0
- package/dist/features/network/intercept/sse.js +74 -0
- package/dist/features/network/intercept/sse.js.map +1 -0
- package/dist/features/network/intercept/streams.d.ts +23 -0
- package/dist/features/network/intercept/streams.d.ts.map +1 -0
- package/dist/features/network/intercept/streams.js +25 -0
- package/dist/features/network/intercept/streams.js.map +1 -0
- package/dist/features/network/intercept/websocket.d.ts +14 -0
- package/dist/features/network/intercept/websocket.d.ts.map +1 -0
- package/dist/features/network/intercept/websocket.js +97 -0
- package/dist/features/network/intercept/websocket.js.map +1 -0
- package/dist/features/network/lazy.d.ts +23 -0
- package/dist/features/network/lazy.d.ts.map +1 -0
- package/dist/features/network/lazy.js +65 -0
- package/dist/features/network/lazy.js.map +1 -0
- package/dist/features/network/normalize.d.ts +9 -0
- package/dist/features/network/normalize.d.ts.map +1 -0
- package/dist/features/network/normalize.js +49 -0
- package/dist/features/network/normalize.js.map +1 -0
- package/dist/features/network/parse/graphql.d.ts +17 -0
- package/dist/features/network/parse/graphql.d.ts.map +1 -0
- package/dist/features/network/parse/graphql.js +106 -0
- package/dist/features/network/parse/graphql.js.map +1 -0
- package/dist/features/network/parse/url.d.ts +12 -0
- package/dist/features/network/parse/url.d.ts.map +1 -0
- package/dist/features/network/parse/url.js +52 -0
- package/dist/features/network/parse/url.js.map +1 -0
- package/dist/features/network/sampler.d.ts +21 -0
- package/dist/features/network/sampler.d.ts.map +1 -0
- package/dist/features/network/sampler.js +25 -0
- package/dist/features/network/sampler.js.map +1 -0
- package/dist/features/network/size.d.ts +21 -0
- package/dist/features/network/size.d.ts.map +1 -0
- package/dist/features/network/size.js +63 -0
- package/dist/features/network/size.js.map +1 -0
- package/dist/features/network/thirdParty.d.ts +95 -0
- package/dist/features/network/thirdParty.d.ts.map +1 -0
- package/dist/features/network/thirdParty.js +126 -0
- package/dist/features/network/thirdParty.js.map +1 -0
- package/dist/features/network/timing.d.ts +41 -0
- package/dist/features/network/timing.d.ts.map +1 -0
- package/dist/features/network/timing.js +134 -0
- package/dist/features/network/timing.js.map +1 -0
- package/dist/features/network/tracing.d.ts +18 -0
- package/dist/features/network/tracing.d.ts.map +1 -0
- package/dist/features/network/tracing.js +46 -0
- package/dist/features/network/tracing.js.map +1 -0
- package/dist/features/network/types.d.ts +75 -0
- package/dist/features/network/types.d.ts.map +1 -0
- package/dist/features/network/types.js +2 -0
- package/dist/features/network/types.js.map +1 -0
- package/dist/features/network/xhrInterceptor.d.ts +12 -0
- package/dist/features/network/xhrInterceptor.d.ts.map +1 -0
- package/dist/features/network/xhrInterceptor.js +108 -0
- package/dist/features/network/xhrInterceptor.js.map +1 -0
- package/dist/features/performance/PerformanceFeature.d.ts +76 -0
- package/dist/features/performance/PerformanceFeature.d.ts.map +1 -0
- package/dist/features/performance/PerformanceFeature.js +265 -0
- package/dist/features/performance/PerformanceFeature.js.map +1 -0
- package/dist/features/performance/jankTap.d.ts +23 -0
- package/dist/features/performance/jankTap.d.ts.map +1 -0
- package/dist/features/performance/jankTap.js +20 -0
- package/dist/features/performance/jankTap.js.map +1 -0
- package/dist/features/performance/longTasks.d.ts +14 -0
- package/dist/features/performance/longTasks.d.ts.map +1 -0
- package/dist/features/performance/longTasks.js +55 -0
- package/dist/features/performance/longTasks.js.map +1 -0
- package/dist/features/performance/normalize.d.ts +15 -0
- package/dist/features/performance/normalize.d.ts.map +1 -0
- package/dist/features/performance/normalize.js +30 -0
- package/dist/features/performance/normalize.js.map +1 -0
- package/dist/features/performance/resources.d.ts +19 -0
- package/dist/features/performance/resources.d.ts.map +1 -0
- package/dist/features/performance/resources.js +78 -0
- package/dist/features/performance/resources.js.map +1 -0
- package/dist/features/performance/sampler.d.ts +10 -0
- package/dist/features/performance/sampler.d.ts.map +1 -0
- package/dist/features/performance/sampler.js +23 -0
- package/dist/features/performance/sampler.js.map +1 -0
- package/dist/features/performance/spa.d.ts +2 -0
- package/dist/features/performance/spa.d.ts.map +1 -0
- package/dist/features/performance/spa.js +40 -0
- package/dist/features/performance/spa.js.map +1 -0
- package/dist/features/performance/throttle.d.ts +21 -0
- package/dist/features/performance/throttle.d.ts.map +1 -0
- package/dist/features/performance/throttle.js +26 -0
- package/dist/features/performance/throttle.js.map +1 -0
- package/dist/features/performance/trace/context.d.ts +17 -0
- package/dist/features/performance/trace/context.d.ts.map +1 -0
- package/dist/features/performance/trace/context.js +33 -0
- package/dist/features/performance/trace/context.js.map +1 -0
- package/dist/features/performance/trace/index.d.ts +7 -0
- package/dist/features/performance/trace/index.d.ts.map +1 -0
- package/dist/features/performance/trace/index.js +6 -0
- package/dist/features/performance/trace/index.js.map +1 -0
- package/dist/features/performance/trace/pageload.d.ts +3 -0
- package/dist/features/performance/trace/pageload.d.ts.map +1 -0
- package/dist/features/performance/trace/pageload.js +34 -0
- package/dist/features/performance/trace/pageload.js.map +1 -0
- package/dist/features/performance/trace/transaction.d.ts +61 -0
- package/dist/features/performance/trace/transaction.d.ts.map +1 -0
- package/dist/features/performance/trace/transaction.js +90 -0
- package/dist/features/performance/trace/transaction.js.map +1 -0
- package/dist/features/performance/trace/types.d.ts +23 -0
- package/dist/features/performance/trace/types.d.ts.map +1 -0
- package/dist/features/performance/trace/types.js +10 -0
- package/dist/features/performance/trace/types.js.map +1 -0
- package/dist/features/performance/traces.d.ts +36 -0
- package/dist/features/performance/traces.d.ts.map +1 -0
- package/dist/features/performance/traces.js +50 -0
- package/dist/features/performance/traces.js.map +1 -0
- package/dist/features/profiler/ProfilerFeature.d.ts +28 -0
- package/dist/features/profiler/ProfilerFeature.d.ts.map +1 -0
- package/dist/features/profiler/ProfilerFeature.js +82 -0
- package/dist/features/profiler/ProfilerFeature.js.map +1 -0
- package/dist/features/profiler/capture.d.ts +8 -0
- package/dist/features/profiler/capture.d.ts.map +1 -0
- package/dist/features/profiler/capture.js +21 -0
- package/dist/features/profiler/capture.js.map +1 -0
- package/dist/features/push/PushFeature.d.ts +120 -0
- package/dist/features/push/PushFeature.d.ts.map +1 -0
- package/dist/features/push/PushFeature.js +319 -0
- package/dist/features/push/PushFeature.js.map +1 -0
- package/dist/features/push/diagnostics.d.ts +55 -0
- package/dist/features/push/diagnostics.d.ts.map +1 -0
- package/dist/features/push/diagnostics.js +383 -0
- package/dist/features/push/diagnostics.js.map +1 -0
- package/dist/features/push/pushState.d.ts +58 -0
- package/dist/features/push/pushState.d.ts.map +1 -0
- package/dist/features/push/pushState.js +75 -0
- package/dist/features/push/pushState.js.map +1 -0
- package/dist/features/push/softAsk.d.ts +68 -0
- package/dist/features/push/softAsk.d.ts.map +1 -0
- package/dist/features/push/softAsk.js +142 -0
- package/dist/features/push/softAsk.js.map +1 -0
- package/dist/features/replay/ReplayFeature.d.ts +52 -0
- package/dist/features/replay/ReplayFeature.d.ts.map +1 -0
- package/dist/features/replay/ReplayFeature.js +282 -0
- package/dist/features/replay/ReplayFeature.js.map +1 -0
- package/dist/features/replay/engine/canvas.d.ts +45 -0
- package/dist/features/replay/engine/canvas.d.ts.map +1 -0
- package/dist/features/replay/engine/canvas.js +122 -0
- package/dist/features/replay/engine/canvas.js.map +1 -0
- package/dist/features/replay/engine/crossOrigin.d.ts +23 -0
- package/dist/features/replay/engine/crossOrigin.d.ts.map +1 -0
- package/dist/features/replay/engine/crossOrigin.js +108 -0
- package/dist/features/replay/engine/crossOrigin.js.map +1 -0
- package/dist/features/replay/engine/cssom.d.ts +31 -0
- package/dist/features/replay/engine/cssom.d.ts.map +1 -0
- package/dist/features/replay/engine/cssom.js +128 -0
- package/dist/features/replay/engine/cssom.js.map +1 -0
- package/dist/features/replay/engine/iframe.d.ts +65 -0
- package/dist/features/replay/engine/iframe.d.ts.map +1 -0
- package/dist/features/replay/engine/iframe.js +186 -0
- package/dist/features/replay/engine/iframe.js.map +1 -0
- package/dist/features/replay/engine/interactions.d.ts +172 -0
- package/dist/features/replay/engine/interactions.d.ts.map +1 -0
- package/dist/features/replay/engine/interactions.js +437 -0
- package/dist/features/replay/engine/interactions.js.map +1 -0
- package/dist/features/replay/engine/mutations.d.ts +65 -0
- package/dist/features/replay/engine/mutations.d.ts.map +1 -0
- package/dist/features/replay/engine/mutations.js +304 -0
- package/dist/features/replay/engine/mutations.js.map +1 -0
- package/dist/features/replay/engine/nodeRegistry.d.ts +23 -0
- package/dist/features/replay/engine/nodeRegistry.d.ts.map +1 -0
- package/dist/features/replay/engine/nodeRegistry.js +51 -0
- package/dist/features/replay/engine/nodeRegistry.js.map +1 -0
- package/dist/features/replay/engine/player.d.ts +11 -0
- package/dist/features/replay/engine/player.d.ts.map +1 -0
- package/dist/features/replay/engine/player.js +284 -0
- package/dist/features/replay/engine/player.js.map +1 -0
- package/dist/features/replay/engine/rebuild.d.ts +8 -0
- package/dist/features/replay/engine/rebuild.d.ts.map +1 -0
- package/dist/features/replay/engine/rebuild.js +46 -0
- package/dist/features/replay/engine/rebuild.js.map +1 -0
- package/dist/features/replay/engine/replayWorker.d.ts +33 -0
- package/dist/features/replay/engine/replayWorker.d.ts.map +1 -0
- package/dist/features/replay/engine/replayWorker.js +175 -0
- package/dist/features/replay/engine/replayWorker.js.map +1 -0
- package/dist/features/replay/engine/resources.d.ts +52 -0
- package/dist/features/replay/engine/resources.d.ts.map +1 -0
- package/dist/features/replay/engine/resources.js +132 -0
- package/dist/features/replay/engine/resources.js.map +1 -0
- package/dist/features/replay/engine/snapshot.d.ts +103 -0
- package/dist/features/replay/engine/snapshot.d.ts.map +1 -0
- package/dist/features/replay/engine/snapshot.js +459 -0
- package/dist/features/replay/engine/snapshot.js.map +1 -0
- package/dist/features/replay/engine/traverse.d.ts +19 -0
- package/dist/features/replay/engine/traverse.d.ts.map +1 -0
- package/dist/features/replay/engine/traverse.js +39 -0
- package/dist/features/replay/engine/traverse.js.map +1 -0
- package/dist/features/replay/engine/types.d.ts +149 -0
- package/dist/features/replay/engine/types.d.ts.map +1 -0
- package/dist/features/replay/engine/types.js +6 -0
- package/dist/features/replay/engine/types.js.map +1 -0
- package/dist/features/replay/engine/webglPatch.d.ts +26 -0
- package/dist/features/replay/engine/webglPatch.d.ts.map +1 -0
- package/dist/features/replay/engine/webglPatch.js +83 -0
- package/dist/features/replay/engine/webglPatch.js.map +1 -0
- package/dist/features/replay/lifecycle/adaptive.d.ts +38 -0
- package/dist/features/replay/lifecycle/adaptive.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/adaptive.js +90 -0
- package/dist/features/replay/lifecycle/adaptive.js.map +1 -0
- package/dist/features/replay/lifecycle/cadence.d.ts +35 -0
- package/dist/features/replay/lifecycle/cadence.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/cadence.js +149 -0
- package/dist/features/replay/lifecycle/cadence.js.map +1 -0
- package/dist/features/replay/lifecycle/deltaBatcher.d.ts +31 -0
- package/dist/features/replay/lifecycle/deltaBatcher.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/deltaBatcher.js +32 -0
- package/dist/features/replay/lifecycle/deltaBatcher.js.map +1 -0
- package/dist/features/replay/lifecycle/deviceSignals.d.ts +35 -0
- package/dist/features/replay/lifecycle/deviceSignals.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/deviceSignals.js +61 -0
- package/dist/features/replay/lifecycle/deviceSignals.js.map +1 -0
- package/dist/features/replay/lifecycle/offloadDomFrames.d.ts +69 -0
- package/dist/features/replay/lifecycle/offloadDomFrames.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/offloadDomFrames.js +107 -0
- package/dist/features/replay/lifecycle/offloadDomFrames.js.map +1 -0
- package/dist/features/replay/lifecycle/pii.d.ts +14 -0
- package/dist/features/replay/lifecycle/pii.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/pii.js +52 -0
- package/dist/features/replay/lifecycle/pii.js.map +1 -0
- package/dist/features/replay/lifecycle/recorder.d.ts +178 -0
- package/dist/features/replay/lifecycle/recorder.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/recorder.js +644 -0
- package/dist/features/replay/lifecycle/recorder.js.map +1 -0
- package/dist/features/replay/lifecycle/sampling.d.ts +28 -0
- package/dist/features/replay/lifecycle/sampling.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/sampling.js +31 -0
- package/dist/features/replay/lifecycle/sampling.js.map +1 -0
- package/dist/features/replay/lifecycle/segmentBuffer.d.ts +75 -0
- package/dist/features/replay/lifecycle/segmentBuffer.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/segmentBuffer.js +130 -0
- package/dist/features/replay/lifecycle/segmentBuffer.js.map +1 -0
- package/dist/features/replay/lifecycle/viewContext.d.ts +7 -0
- package/dist/features/replay/lifecycle/viewContext.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/viewContext.js +51 -0
- package/dist/features/replay/lifecycle/viewContext.js.map +1 -0
- package/dist/features/scroll/index.d.ts +33 -0
- package/dist/features/scroll/index.d.ts.map +1 -0
- package/dist/features/scroll/index.js +106 -0
- package/dist/features/scroll/index.js.map +1 -0
- package/dist/features/session/sessionManager.d.ts +41 -0
- package/dist/features/session/sessionManager.d.ts.map +1 -0
- package/dist/features/session/sessionManager.js +67 -0
- package/dist/features/session/sessionManager.js.map +1 -0
- package/dist/features/session/sessionStore.d.ts +137 -0
- package/dist/features/session/sessionStore.d.ts.map +1 -0
- package/dist/features/session/sessionStore.js +323 -0
- package/dist/features/session/sessionStore.js.map +1 -0
- package/dist/features/watchdog/WatchdogFeature.d.ts +23 -0
- package/dist/features/watchdog/WatchdogFeature.d.ts.map +1 -0
- package/dist/features/watchdog/WatchdogFeature.js +29 -0
- package/dist/features/watchdog/WatchdogFeature.js.map +1 -0
- package/dist/features/watchdog/collectors.d.ts +18 -0
- package/dist/features/watchdog/collectors.d.ts.map +1 -0
- package/dist/features/watchdog/collectors.js +107 -0
- package/dist/features/watchdog/collectors.js.map +1 -0
- package/dist/features/watchdog/config.d.ts +51 -0
- package/dist/features/watchdog/config.d.ts.map +1 -0
- package/dist/features/watchdog/config.js +28 -0
- package/dist/features/watchdog/config.js.map +1 -0
- package/dist/features/watchdog/engine.d.ts +22 -0
- package/dist/features/watchdog/engine.d.ts.map +1 -0
- package/dist/features/watchdog/engine.js +123 -0
- package/dist/features/watchdog/engine.js.map +1 -0
- package/dist/features/watchdog/incidents.d.ts +79 -0
- package/dist/features/watchdog/incidents.d.ts.map +1 -0
- package/dist/features/watchdog/incidents.js +204 -0
- package/dist/features/watchdog/incidents.js.map +1 -0
- package/dist/features/watchdog/rollup.d.ts +41 -0
- package/dist/features/watchdog/rollup.d.ts.map +1 -0
- package/dist/features/watchdog/rollup.js +76 -0
- package/dist/features/watchdog/rollup.js.map +1 -0
- package/dist/features/webVitals/WebVitalsFeature.d.ts +46 -0
- package/dist/features/webVitals/WebVitalsFeature.d.ts.map +1 -0
- package/dist/features/webVitals/WebVitalsFeature.js +252 -0
- package/dist/features/webVitals/WebVitalsFeature.js.map +1 -0
- package/dist/features/webVitals/attribution.d.ts +50 -0
- package/dist/features/webVitals/attribution.d.ts.map +1 -0
- package/dist/features/webVitals/attribution.js +186 -0
- package/dist/features/webVitals/attribution.js.map +1 -0
- package/dist/features/webVitals/observe.d.ts +6 -0
- package/dist/features/webVitals/observe.d.ts.map +1 -0
- package/dist/features/webVitals/observe.js +6 -0
- package/dist/features/webVitals/observe.js.map +1 -0
- package/dist/features/webVitals/vitals.d.ts +99 -0
- package/dist/features/webVitals/vitals.d.ts.map +1 -0
- package/dist/features/webVitals/vitals.js +166 -0
- package/dist/features/webVitals/vitals.js.map +1 -0
- package/dist/features/webperf/WebPerfFeature.d.ts +19 -0
- package/dist/features/webperf/WebPerfFeature.d.ts.map +1 -0
- package/dist/features/webperf/WebPerfFeature.js +48 -0
- package/dist/features/webperf/WebPerfFeature.js.map +1 -0
- package/dist/features/webperf/collectors.d.ts +3 -0
- package/dist/features/webperf/collectors.d.ts.map +1 -0
- package/dist/features/webperf/collectors.js +118 -0
- package/dist/features/webperf/collectors.js.map +1 -0
- package/dist/features/webperf/math.d.ts +12 -0
- package/dist/features/webperf/math.d.ts.map +1 -0
- package/dist/features/webperf/math.js +26 -0
- package/dist/features/webperf/math.js.map +1 -0
- package/dist/inapp.d.ts +6 -0
- package/dist/inapp.d.ts.map +1 -0
- package/dist/inapp.js +6 -0
- package/dist/inapp.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/index.d.ts +7 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +2 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/pipeline/index.d.ts +3 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +3 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/pipeline.d.ts +263 -0
- package/dist/pipeline/pipeline.d.ts.map +1 -0
- package/dist/pipeline/pipeline.js +783 -0
- package/dist/pipeline/pipeline.js.map +1 -0
- package/dist/public/ScaleBunFacade.d.ts +436 -0
- package/dist/public/ScaleBunFacade.d.ts.map +1 -0
- package/dist/public/ScaleBunFacade.js +857 -0
- package/dist/public/ScaleBunFacade.js.map +1 -0
- package/dist/public/index.d.ts +5 -0
- package/dist/public/index.d.ts.map +1 -0
- package/dist/public/index.js +4 -0
- package/dist/public/index.js.map +1 -0
- package/dist/public/typedTracker.d.ts +91 -0
- package/dist/public/typedTracker.d.ts.map +1 -0
- package/dist/public/typedTracker.js +60 -0
- package/dist/public/typedTracker.js.map +1 -0
- package/dist/scalebun-push-sw.js +236 -0
- package/dist/scalebun.min.js +717 -0
- package/dist/scalebun.min.js.map +7 -0
- package/dist/storage/idb.d.ts +16 -0
- package/dist/storage/idb.d.ts.map +1 -0
- package/dist/storage/idb.js +76 -0
- package/dist/storage/idb.js.map +1 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +3 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/transport/gzip.d.ts +2 -0
- package/dist/transport/gzip.d.ts.map +1 -0
- package/dist/transport/gzip.js +20 -0
- package/dist/transport/gzip.js.map +1 -0
- package/dist/transport/httpClient.d.ts +156 -0
- package/dist/transport/httpClient.d.ts.map +1 -0
- package/dist/transport/httpClient.js +277 -0
- package/dist/transport/httpClient.js.map +1 -0
- package/dist/transport/index.d.ts +3 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +3 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/sign.d.ts +25 -0
- package/dist/transport/sign.d.ts.map +1 -0
- package/dist/transport/sign.js +58 -0
- package/dist/transport/sign.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { renderVariantBlocks } from './surface.js';
|
|
2
|
+
const MIN_W = 280;
|
|
3
|
+
const MAX_W = 640;
|
|
4
|
+
const widthKey = (id) => `scalebun_inapp_slideover_${id}`;
|
|
5
|
+
function readWidth(id, fallback) {
|
|
6
|
+
try {
|
|
7
|
+
const raw = localStorage.getItem(widthKey(id));
|
|
8
|
+
const n = raw ? Number(raw) : NaN;
|
|
9
|
+
return Number.isFinite(n) ? Math.min(MAX_W, Math.max(MIN_W, n)) : fallback;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return fallback;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function saveWidth(id, w) {
|
|
16
|
+
try {
|
|
17
|
+
localStorage.setItem(widthKey(id), String(Math.round(w)));
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
/* storage disabled */
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function slideoverSurface(ctx) {
|
|
24
|
+
const { doc, variant } = ctx;
|
|
25
|
+
/**
|
|
26
|
+
* Three placements, not two.
|
|
27
|
+
*
|
|
28
|
+
* `bottom` used to fall through to the right-hand branch because the check was `=== 'left'` and
|
|
29
|
+
* anything else meant right — so a `bottom_sheet` campaign (one of the seven legacy layouts, and
|
|
30
|
+
* the container the registry gives `multiStepSheet`) rendered as a full-height side panel. The
|
|
31
|
+
* placement is now read explicitly so an unknown value still defaults to right without silently
|
|
32
|
+
* swallowing a known one.
|
|
33
|
+
*/
|
|
34
|
+
const placement = variant.surfaceOptions?.placement;
|
|
35
|
+
const bottom = placement === 'bottom';
|
|
36
|
+
const left = placement === 'left';
|
|
37
|
+
// Width is a vertical-panel concept; a bottom sheet spans the viewport and is sized by content.
|
|
38
|
+
const resizable = !bottom && variant.surfaceOptions?.resizable !== false;
|
|
39
|
+
const pinnable = !!variant.surfaceOptions?.pinnable;
|
|
40
|
+
const root = doc.createElement('div');
|
|
41
|
+
root.className =
|
|
42
|
+
'scalebun-slideover ' +
|
|
43
|
+
(bottom ? 'scalebun-slideover-bottom' : left ? 'scalebun-slideover-left' : 'scalebun-slideover-right');
|
|
44
|
+
// A bottom sheet is a dialog the user is meant to act in; a side panel is ambient by design
|
|
45
|
+
// (this surface's contract: "never steals focus"). Keep that distinction in the a11y role.
|
|
46
|
+
root.setAttribute('role', variant.a11y?.role ?? (bottom ? 'dialog' : 'complementary'));
|
|
47
|
+
root.setAttribute('aria-label', variant.a11y?.labelledBy ?? variant.name);
|
|
48
|
+
let width = readWidth(variant.id, variant.surfaceOptions?.maxWidth ?? 380);
|
|
49
|
+
const applyWidth = () => {
|
|
50
|
+
if (!bottom)
|
|
51
|
+
root.style.width = `${width}px`;
|
|
52
|
+
};
|
|
53
|
+
applyWidth();
|
|
54
|
+
// Header row: pin (optional) + close.
|
|
55
|
+
const header = doc.createElement('div');
|
|
56
|
+
header.className = 'scalebun-so-header';
|
|
57
|
+
if (pinnable) {
|
|
58
|
+
const pin = doc.createElement('button');
|
|
59
|
+
pin.type = 'button';
|
|
60
|
+
pin.className = 'scalebun-x scalebun-so-pin';
|
|
61
|
+
const pinnedKey = `scalebun_inapp_slideover_pin_${variant.id}`;
|
|
62
|
+
let pinned = false;
|
|
63
|
+
try {
|
|
64
|
+
pinned = localStorage.getItem(pinnedKey) === '1';
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
/* ignore */
|
|
68
|
+
}
|
|
69
|
+
const reflectPin = () => {
|
|
70
|
+
root.setAttribute('data-pinned', pinned ? 'true' : 'false');
|
|
71
|
+
pin.setAttribute('aria-pressed', pinned ? 'true' : 'false');
|
|
72
|
+
pin.title = pinned ? 'Unpin' : 'Pin';
|
|
73
|
+
pin.textContent = pinned ? '📌' : '📍';
|
|
74
|
+
};
|
|
75
|
+
pin.addEventListener('click', () => {
|
|
76
|
+
pinned = !pinned;
|
|
77
|
+
try {
|
|
78
|
+
localStorage.setItem(pinnedKey, pinned ? '1' : '0');
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
/* ignore */
|
|
82
|
+
}
|
|
83
|
+
reflectPin();
|
|
84
|
+
});
|
|
85
|
+
reflectPin();
|
|
86
|
+
header.appendChild(pin);
|
|
87
|
+
}
|
|
88
|
+
if (variant.dismiss?.xButton !== false) {
|
|
89
|
+
const x = doc.createElement('button');
|
|
90
|
+
x.type = 'button';
|
|
91
|
+
x.className = 'scalebun-x';
|
|
92
|
+
x.setAttribute('aria-label', 'Close panel');
|
|
93
|
+
x.textContent = '×';
|
|
94
|
+
x.addEventListener('click', () => ctx.requestClose('x'));
|
|
95
|
+
header.appendChild(x);
|
|
96
|
+
}
|
|
97
|
+
root.appendChild(header);
|
|
98
|
+
const bodyEl = doc.createElement('div');
|
|
99
|
+
bodyEl.className = 'scalebun-so-body';
|
|
100
|
+
for (const node of renderVariantBlocks(ctx))
|
|
101
|
+
bodyEl.appendChild(node);
|
|
102
|
+
root.appendChild(bodyEl);
|
|
103
|
+
// Resize handle.
|
|
104
|
+
let onMove = null;
|
|
105
|
+
let onUp = null;
|
|
106
|
+
if (resizable) {
|
|
107
|
+
const handle = doc.createElement('div');
|
|
108
|
+
handle.className = 'scalebun-so-resize';
|
|
109
|
+
handle.setAttribute('role', 'separator');
|
|
110
|
+
handle.setAttribute('aria-orientation', 'vertical');
|
|
111
|
+
handle.addEventListener('mousedown', (e) => {
|
|
112
|
+
e.preventDefault();
|
|
113
|
+
const startX = e.clientX;
|
|
114
|
+
const startW = width;
|
|
115
|
+
onMove = (ev) => {
|
|
116
|
+
const delta = left ? ev.clientX - startX : startX - ev.clientX;
|
|
117
|
+
width = Math.min(MAX_W, Math.max(MIN_W, startW + delta));
|
|
118
|
+
applyWidth();
|
|
119
|
+
};
|
|
120
|
+
onUp = () => {
|
|
121
|
+
saveWidth(variant.id, width);
|
|
122
|
+
detachDrag();
|
|
123
|
+
};
|
|
124
|
+
doc.addEventListener('mousemove', onMove);
|
|
125
|
+
doc.addEventListener('mouseup', onUp);
|
|
126
|
+
});
|
|
127
|
+
root.appendChild(handle);
|
|
128
|
+
}
|
|
129
|
+
const detachDrag = () => {
|
|
130
|
+
if (onMove)
|
|
131
|
+
doc.removeEventListener('mousemove', onMove);
|
|
132
|
+
if (onUp)
|
|
133
|
+
doc.removeEventListener('mouseup', onUp);
|
|
134
|
+
onMove = onUp = null;
|
|
135
|
+
};
|
|
136
|
+
return {
|
|
137
|
+
el: root,
|
|
138
|
+
destroy: () => {
|
|
139
|
+
detachDrag();
|
|
140
|
+
root.remove();
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=slideover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slideover.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/slideover.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IAM 2.0 surface styles (P1.2+). One CSS string adopted once into the Shadow host. Classes only
|
|
3
|
+
* (CSP-safe); colors from the theme vars; animations opacity/transform-only and auto-disabled under
|
|
4
|
+
* prefers-reduced-motion by the host base sheet.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SURFACES_CSS = "\n/* shared close button */\n.scalebun-x{ background:none; border:0; color:var(--scalebun-muted); cursor:pointer; font-size:16px; line-height:1;\n padding:4px 6px; border-radius:6px; }\n.scalebun-x:hover{ background:color-mix(in srgb, var(--scalebun-fg) 12%, transparent); color:var(--scalebun-fg); }\n.scalebun-x:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n\n/* --scalebun-anim-in carries the variant's AUTHORED entrance animation, mapped from a fixed\n dictionary in richInApp (never interpolated). Each use falls back to that surface's own\n long-standing default, so a variant that authored nothing renders byte-identically to before.\n The reduced-motion rule in host.ts is marked important and still wins over anything set here. */\n\n/* S9 \u2014 banner */\n/* WRAPS rather than overflows. A banner carrying a heading, body, a stat and a CTA measures 407px of\n content, so on any phone it ran past the screen edge and took the page's horizontal scroll with it\n \u2014 the one remaining defect that reproduced with the catalog's OWN copy, not stressed content.\n Wrapping to a second row was chosen over dropping the stat or scrolling horizontally: nothing is\n lost, and a banner is already variable-height, so no other surface has to change to allow it. */\n.scalebun-banner{ display:flex; align-items:center; gap:12px; padding:10px 16px; flex-wrap:wrap;\n background:var(--scalebun-bg); color:var(--scalebun-fg); border-bottom:1px solid var(--scalebun-border);\n box-shadow:var(--scalebun-shadow); animation:var(--scalebun-anim-in, scalebun-slidedown .18s ease); }\n.scalebun-banner-bottom{ border-bottom:0; border-top:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }\n.scalebun-banner .scalebun-body{ flex:1; display:flex; align-items:center; gap:12px; min-width:0; flex-wrap:wrap; }\n.scalebun-banner .scalebun-body>*{ margin:0; }\n.scalebun-banner .scalebun-cta-row{ margin:0; }\n@keyframes scalebun-slidedown{ from{ transform:translateY(-100%); } to{ transform:none; } }\n\n/* S10 \u2014 toast */\n.scalebun-toast{ background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:12px 14px; max-width:340px;\n display:flex; gap:10px; align-items:flex-start; animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }\n.scalebun-toast .scalebun-body{ flex:1; min-width:0; }\n.scalebun-toast .scalebun-body>*:last-child{ margin-bottom:0; }\n@keyframes scalebun-slideup{ from{ transform:translateY(8px); opacity:0; } to{ transform:none; opacity:1; } }\n\n/* S1 \u2014 modal */\n/* pointer-events:auto is load-bearing \u2014 the zone is click-transparent (see host.ts BASE_CSS docblock) */\n.scalebun-backdrop{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;\n background:rgba(15,18,26,.55); padding:24px; animation:scalebun-fade .15s ease; }\n.scalebun-modal-card{ position:relative; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:22px; width:100%; max-height:calc(100vh - 48px); overflow:auto; animation:var(--scalebun-anim-in, scalebun-pop .16s ease); }\n.scalebun-modal-card[data-size=\"sm\"]{ max-width:360px; }\n.scalebun-modal-card[data-size=\"md\"]{ max-width:460px; }\n.scalebun-modal-card[data-size=\"lg\"]{ max-width:620px; }\n.scalebun-modal-card[data-size=\"xl\"]{ max-width:820px; }\n.scalebun-modal-x{ position:absolute; top:10px; inset-inline-end:10px; }\n@keyframes scalebun-fade{ from{ opacity:0; } to{ opacity:1; } }\n@keyframes scalebun-pop{ from{ transform:scale(.96); opacity:0; } to{ transform:none; opacity:1; } }\n\n/* S2 \u2014 slide-over */\n.scalebun-slideover{ position:absolute; top:0; bottom:0; width:380px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n box-shadow:var(--scalebun-shadow); display:flex; flex-direction:column; overflow:hidden; }\n.scalebun-slideover-right{ right:0; border-left:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slide-in-r .2s ease); }\n.scalebun-slideover-left{ left:0; border-right:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slide-in-l .2s ease); }\n/* BOTTOM SHEET. bottom_sheet is one of the seven legacy layouts and richInApp has always mapped it\n to slideover with placement 'bottom' \u2014 but only -right/-left existed, and the surface treated any\n non-'left' placement as right. So every bottom-sheet campaign rendered as a full-height RIGHT panel.\n Overrides the base's top/bottom/width, which describe a vertical edge panel. */\n.scalebun-slideover-bottom{ top:auto; left:0; right:0; bottom:0; width:auto; max-height:82vh;\n border-top:1px solid var(--scalebun-border); border-radius:16px 16px 0 0;\n animation:var(--scalebun-anim-in, scalebun-slideup .22s ease); }\n.scalebun-so-header{ display:flex; justify-content:flex-end; gap:4px; padding:8px 8px 0; }\n/* A grab handle reads as \"this came from the bottom edge\" \u2014 the affordance a sheet has and a side\n panel doesn't. Decorative only; the \u00D7 button remains the accessible dismiss. */\n.scalebun-slideover-bottom .scalebun-so-header::before{ content:''; position:absolute; top:8px;\n left:50%; transform:translateX(-50%); width:36px; height:4px; border-radius:99px;\n background:var(--scalebun-border); }\n.scalebun-slideover-bottom .scalebun-so-header{ padding-top:16px; }\n.scalebun-so-body{ padding:8px 18px 18px; overflow:auto; flex:1; }\n.scalebun-so-resize{ position:absolute; top:0; bottom:0; width:6px; cursor:ew-resize; }\n.scalebun-slideover-right .scalebun-so-resize{ left:0; }\n.scalebun-slideover-left .scalebun-so-resize{ right:0; }\n.scalebun-so-resize:hover{ background:color-mix(in srgb, var(--scalebun-accent) 40%, transparent); }\n@keyframes scalebun-slide-in-r{ from{ transform:translateX(100%); } to{ transform:none; } }\n@keyframes scalebun-slide-in-l{ from{ transform:translateX(-100%); } to{ transform:none; } }\n\n/* S4 \u2014 anchored popover */\n.scalebun-popover{ position:absolute; background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:14px 16px; max-width:320px;\n animation:scalebun-pop .14s ease; }\n.scalebun-pop-body>*:last-child{ margin-bottom:0; }\n.scalebun-pop-x{ position:absolute; top:6px; inset-inline-end:6px; }\n/* A close button is out of flow, so nothing stops a heading running underneath it \u2014 the \u00D7 then\n lands on a word of the title. Reserving the space is the same thing .scalebun-toolbar-callout\n already did with its right padding. Every surface that pairs an absolute \u00D7 with a heading needs\n it, which the stressed sweep put at nine of them, not the three the authored copy revealed.\n\n LOGICAL, not physical. This was padding-right, correct only while text runs left-to-right: in\n RTL a line ENDS on the left and STARTS under the close button, so the reserved gap sat on the\n side the text was leaving and the \u00D7 landed on the first word instead of the last. The buttons\n use inset-inline-end for the same reason. Caught by sweeping the catalog in Arabic. */\n.scalebun-popover .scalebun-h,\n.scalebun-coachmark .scalebun-h,\n.scalebun-modal-card .scalebun-h,\n.scalebun-inline .scalebun-h,\n.scalebun-toast .scalebun-h,\n.scalebun-banner .scalebun-h,\n.scalebun-takeover-inner .scalebun-h,\n.scalebun-toolbar-callout .scalebun-h{ padding-inline-end:24px; }\n\n/* S5 \u2014 coachmark + spotlight */\n.scalebun-coach-spot{ position:fixed; border-radius:8px; box-shadow:0 0 0 9999px rgba(12,10,20,.55);\n pointer-events:none; transition:top .18s ease,left .18s ease,width .18s ease,height .18s ease; }\n.scalebun-coachmark{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:14px 16px; max-width:300px; animation:scalebun-pop .14s ease; }\n\n/* S6 \u2014 product tour. The same three phone-only defects fixed in coach/overlay.ts, which carries the\n full reasoning: width is EXPLICIT because a fixed box with left:50% and no width shrink-wraps to\n half the viewport; the heading reserves the space .scalebun-pop-x is absolutely positioned in; and\n the nav's items are flex:none so an overflowing footer wraps intact instead of collapsing the\n progress counter into a one-character column. */\n.scalebun-tour-card{ width:min(320px, calc(100vw - 32px)); }\n.scalebun-tour-card .scalebun-h{ padding-right:20px; }\n/* Centred by transform, and ANIMATED by transform \u2014 so the entrance clobbered the centring.\n .scalebun-coachmark carries animation:scalebun-pop, whose keyframes set transform:scale(.96) then\n transform:none. An animated property REPLACES the declared one for the whole run, so for the\n animation's 140ms this card was drawn at left:50%/top:50% with NO translate \u2014 sitting half its own\n width down and to the right \u2014 then snapped into place when the animation finished. That is the\n visible jump on opening a tour and on every Next.\n The fix keeps the translate inside the keyframes so the centring survives the run. The individual\n translate property would be tidier, but it silently breaks centring where unsupported, and a card\n that never centres is worse than one that briefly animates. */\n.scalebun-tour-center{ top:50%; left:50%; transform:translate(-50%,-50%); animation-name:scalebun-pop-center; }\n@keyframes scalebun-pop-center{\n from{ transform:translate(-50%,-50%) scale(.96); opacity:0; }\n to{ transform:translate(-50%,-50%); opacity:1; } }\n.scalebun-tour-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:14px; flex-wrap:wrap; }\n.scalebun-tour-prog{ font-size:11.5px; color:var(--scalebun-muted); font-variant-numeric:tabular-nums; flex:none; white-space:nowrap; }\n.scalebun-tour-btns{ display:flex; gap:6px; flex:none; }\n.scalebun-tour-btns .scalebun-btn{ padding:6px 12px; font-size:12.5px; }\n\n/* S7 \u2014 hotspot / beacon */\n.scalebun-beacon{ position:absolute; width:14px; height:14px; padding:0; border:0; border-radius:50%;\n background:var(--scalebun-accent); cursor:pointer; pointer-events:auto; box-shadow:0 0 0 4px color-mix(in srgb, var(--scalebun-accent) 30%, transparent); }\n.scalebun-beacon::after{ content:''; position:absolute; inset:0; border-radius:50%; background:var(--scalebun-accent);\n animation:scalebun-pulse 1.8s ease-out infinite; }\n.scalebun-beacon:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:3px; }\n@keyframes scalebun-pulse{ 0%{ transform:scale(1); opacity:.6; } 100%{ transform:scale(2.6); opacity:0; } }\n.scalebun-beacon-card{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:12px 14px; max-width:260px; font-size:13px; }\n.scalebun-beacon-card[hidden]{ display:none; }\n\n/* S16 \u2014 toolbar / menu callout */\n.scalebun-toolbar-callout{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:10px; box-shadow:var(--scalebun-shadow);\n padding:10px 30px 10px 12px; max-width:240px; font-size:13px; animation:scalebun-pop .14s ease; }\n\n/* S13 \u2014 command palette */\n.scalebun-palette-backdrop{ position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:center; pointer-events:auto;\n padding-top:12vh; background:rgba(15,18,26,.45); }\n.scalebun-palette{ width:min(560px, 92%); background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:14px; box-shadow:var(--scalebun-shadow); overflow:hidden; animation:scalebun-pop .14s ease; }\n.scalebun-palette-input{ width:100%; box-sizing:border-box; border:0; border-bottom:1px solid var(--scalebun-border);\n padding:16px 18px; font:inherit; font-size:15px; background:transparent; color:var(--scalebun-fg); outline:none; }\n.scalebun-palette-list{ list-style:none; margin:0; padding:6px; max-height:50vh; overflow-y:auto; }\n.scalebun-palette-item{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:8px; cursor:pointer; }\n.scalebun-palette-item.active{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); }\n.scalebun-palette-label{ flex:1; font-size:13.5px; }\n.scalebun-palette-hint{ font-size:11.5px; opacity:.7; }\n.scalebun-palette-empty{ padding:16px; text-align:center; color:var(--scalebun-muted); font-size:13px; }\n\n/* Every flex ROW below holds text, and a flex item's min-width defaults to its CONTENT \u2014 so a single\n unbreakable run (a support URL, a deploy hash) forces the row wider than the surface that contains\n it, no matter that the text itself is allowed to wrap. This is the same defect already fixed on\n .scalebun-cta-row; these are the remaining rows, and between them they were 84 of the sweep's last\n 112 findings. The text children already carry overflow-wrap from BLOCKS_CSS \u2014 this is what lets\n them actually use it. */\n.scalebun-panel-head, .scalebun-panel-title, .scalebun-cl-head, .scalebun-cl-title,\n.scalebun-cl-item, .scalebun-cl-label, .scalebun-palette-item, .scalebun-code-bar,\n.scalebun-code-lang, .scalebun-code-copy{ min-width:0; overflow-wrap:anywhere; }\n\n/* S3 \u2014 docked panel + AI shell */\n.scalebun-panel{ position:absolute; top:0; bottom:0; width:360px; display:flex; flex-direction:column;\n background:var(--scalebun-bg); color:var(--scalebun-fg); box-shadow:var(--scalebun-shadow); }\n.scalebun-panel-right{ right:0; border-left:1px solid var(--scalebun-border); }\n.scalebun-panel-left{ left:0; border-right:1px solid var(--scalebun-border); }\n.scalebun-panel-head{ display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid var(--scalebun-border); }\n.scalebun-panel-title{ flex:1; font-weight:700; font-size:14px; }\n.scalebun-panel-thread{ flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; }\n.scalebun-bubble{ max-width:85%; padding:9px 12px; border-radius:12px; font-size:13.5px; line-height:1.45; white-space:pre-wrap; }\n.scalebun-bubble-user{ align-self:flex-end; background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-bottom-right-radius:4px; }\n.scalebun-bubble-assistant{ align-self:flex-start; background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); border-bottom-left-radius:4px; }\n.scalebun-bubble.streaming::after{ content:'\u258D'; animation:scalebun-blink 1s step-end infinite; }\n@keyframes scalebun-blink{ 50%{ opacity:0; } }\n.scalebun-panel-composer{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--scalebun-border); align-items:flex-end; }\n.scalebun-panel-input{ flex:1; resize:none; border:1px solid var(--scalebun-border); border-radius:10px; padding:9px 11px;\n font:inherit; font-size:13.5px; background:transparent; color:var(--scalebun-fg); max-height:120px; }\n.scalebun-panel-send{ padding:9px 14px; }\n\n/* S14 \u2014 checklist / onboarding widget */\n.scalebun-checklist{ position:absolute; bottom:16px; right:16px; width:320px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:14px; box-shadow:var(--scalebun-shadow); padding:14px 16px; }\n.scalebun-checklist.complete{ border-color:var(--scalebun-accent); }\n.scalebun-cl-head{ display:flex; align-items:center; gap:6px; margin-bottom:10px; }\n.scalebun-cl-title{ flex:1; font-weight:700; font-size:14px; }\n.scalebun-cl-dock{ font-size:14px; }\n.scalebun-cl-bar{ height:6px; border-radius:3px; background:color-mix(in srgb, var(--scalebun-fg) 10%, transparent); overflow:hidden; }\n.scalebun-cl-fill{ height:100%; background:var(--scalebun-accent); transition:width .25s ease; }\n.scalebun-cl-count{ font-size:11.5px; color:var(--scalebun-muted); margin:6px 0 10px; }\n.scalebun-checklist.collapsed .scalebun-cl-bar, .scalebun-checklist.collapsed .scalebun-cl-count, .scalebun-checklist.collapsed .scalebun-cl-list{ display:none; }\n.scalebun-cl-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }\n.scalebun-cl-item{ display:flex; align-items:center; gap:10px; padding:6px 4px; font-size:13.5px; }\n.scalebun-cl-item.done .scalebun-cl-label{ color:var(--scalebun-muted); text-decoration:line-through; }\n.scalebun-cl-check{ width:20px; height:20px; flex:0 0 auto; border-radius:6px; border:1.5px solid var(--scalebun-border);\n background:transparent; color:var(--scalebun-accent-fg); cursor:pointer; font-size:12px; line-height:1; }\n.scalebun-cl-item.done .scalebun-cl-check{ background:var(--scalebun-accent); border-color:var(--scalebun-accent); }\n.scalebun-cl-label{ flex:1; }\n\n/* S15 \u2014 full-page takeover */\n.scalebun-takeover{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;\n background:var(--scalebun-bg); color:var(--scalebun-fg); padding:32px; overflow:auto; animation:var(--scalebun-anim-in, scalebun-fade .2s ease); }\n.scalebun-takeover-inner{ position:relative; max-width:640px; width:100%; text-align:center; }\n.scalebun-takeover-x{ position:absolute; top:-8px; inset-inline-end:-8px; }\n\n/* S12 \u2014 floating launcher */\n.scalebun-launcher{ position:absolute; bottom:0; right:0; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }\n.scalebun-launcher-fab{ width:52px; height:52px; border-radius:50%; border:0; background:var(--scalebun-accent); color:var(--scalebun-accent-fg);\n font-size:22px; cursor:pointer; box-shadow:var(--scalebun-shadow); }\n.scalebun-launcher-menu{ display:flex; flex-direction:column; gap:2px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:12px; box-shadow:var(--scalebun-shadow); padding:6px; min-width:180px;\n animation:scalebun-pop .14s ease; }\n.scalebun-launcher-menu[hidden]{ display:none; }\n.scalebun-launcher-item{ text-align:left; background:none; border:0; color:var(--scalebun-fg); cursor:pointer; font:inherit;\n font-size:13.5px; padding:9px 12px; border-radius:8px; }\n.scalebun-launcher-item:hover{ background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); }\n";
|
|
7
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,YAAY,y3kBAoOxB,CAAC"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IAM 2.0 surface styles (P1.2+). One CSS string adopted once into the Shadow host. Classes only
|
|
3
|
+
* (CSP-safe); colors from the theme vars; animations opacity/transform-only and auto-disabled under
|
|
4
|
+
* prefers-reduced-motion by the host base sheet.
|
|
5
|
+
*/
|
|
6
|
+
export const SURFACES_CSS = `
|
|
7
|
+
/* shared close button */
|
|
8
|
+
.scalebun-x{ background:none; border:0; color:var(--scalebun-muted); cursor:pointer; font-size:16px; line-height:1;
|
|
9
|
+
padding:4px 6px; border-radius:6px; }
|
|
10
|
+
.scalebun-x:hover{ background:color-mix(in srgb, var(--scalebun-fg) 12%, transparent); color:var(--scalebun-fg); }
|
|
11
|
+
.scalebun-x:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }
|
|
12
|
+
|
|
13
|
+
/* --scalebun-anim-in carries the variant's AUTHORED entrance animation, mapped from a fixed
|
|
14
|
+
dictionary in richInApp (never interpolated). Each use falls back to that surface's own
|
|
15
|
+
long-standing default, so a variant that authored nothing renders byte-identically to before.
|
|
16
|
+
The reduced-motion rule in host.ts is marked important and still wins over anything set here. */
|
|
17
|
+
|
|
18
|
+
/* S9 — banner */
|
|
19
|
+
/* WRAPS rather than overflows. A banner carrying a heading, body, a stat and a CTA measures 407px of
|
|
20
|
+
content, so on any phone it ran past the screen edge and took the page's horizontal scroll with it
|
|
21
|
+
— the one remaining defect that reproduced with the catalog's OWN copy, not stressed content.
|
|
22
|
+
Wrapping to a second row was chosen over dropping the stat or scrolling horizontally: nothing is
|
|
23
|
+
lost, and a banner is already variable-height, so no other surface has to change to allow it. */
|
|
24
|
+
.scalebun-banner{ display:flex; align-items:center; gap:12px; padding:10px 16px; flex-wrap:wrap;
|
|
25
|
+
background:var(--scalebun-bg); color:var(--scalebun-fg); border-bottom:1px solid var(--scalebun-border);
|
|
26
|
+
box-shadow:var(--scalebun-shadow); animation:var(--scalebun-anim-in, scalebun-slidedown .18s ease); }
|
|
27
|
+
.scalebun-banner-bottom{ border-bottom:0; border-top:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }
|
|
28
|
+
.scalebun-banner .scalebun-body{ flex:1; display:flex; align-items:center; gap:12px; min-width:0; flex-wrap:wrap; }
|
|
29
|
+
.scalebun-banner .scalebun-body>*{ margin:0; }
|
|
30
|
+
.scalebun-banner .scalebun-cta-row{ margin:0; }
|
|
31
|
+
@keyframes scalebun-slidedown{ from{ transform:translateY(-100%); } to{ transform:none; } }
|
|
32
|
+
|
|
33
|
+
/* S10 — toast */
|
|
34
|
+
.scalebun-toast{ background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);
|
|
35
|
+
border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:12px 14px; max-width:340px;
|
|
36
|
+
display:flex; gap:10px; align-items:flex-start; animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }
|
|
37
|
+
.scalebun-toast .scalebun-body{ flex:1; min-width:0; }
|
|
38
|
+
.scalebun-toast .scalebun-body>*:last-child{ margin-bottom:0; }
|
|
39
|
+
@keyframes scalebun-slideup{ from{ transform:translateY(8px); opacity:0; } to{ transform:none; opacity:1; } }
|
|
40
|
+
|
|
41
|
+
/* S1 — modal */
|
|
42
|
+
/* pointer-events:auto is load-bearing — the zone is click-transparent (see host.ts BASE_CSS docblock) */
|
|
43
|
+
.scalebun-backdrop{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;
|
|
44
|
+
background:rgba(15,18,26,.55); padding:24px; animation:scalebun-fade .15s ease; }
|
|
45
|
+
.scalebun-modal-card{ position:relative; background:var(--scalebun-bg); color:var(--scalebun-fg);
|
|
46
|
+
border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);
|
|
47
|
+
padding:22px; width:100%; max-height:calc(100vh - 48px); overflow:auto; animation:var(--scalebun-anim-in, scalebun-pop .16s ease); }
|
|
48
|
+
.scalebun-modal-card[data-size="sm"]{ max-width:360px; }
|
|
49
|
+
.scalebun-modal-card[data-size="md"]{ max-width:460px; }
|
|
50
|
+
.scalebun-modal-card[data-size="lg"]{ max-width:620px; }
|
|
51
|
+
.scalebun-modal-card[data-size="xl"]{ max-width:820px; }
|
|
52
|
+
.scalebun-modal-x{ position:absolute; top:10px; inset-inline-end:10px; }
|
|
53
|
+
@keyframes scalebun-fade{ from{ opacity:0; } to{ opacity:1; } }
|
|
54
|
+
@keyframes scalebun-pop{ from{ transform:scale(.96); opacity:0; } to{ transform:none; opacity:1; } }
|
|
55
|
+
|
|
56
|
+
/* S2 — slide-over */
|
|
57
|
+
.scalebun-slideover{ position:absolute; top:0; bottom:0; width:380px; background:var(--scalebun-bg); color:var(--scalebun-fg);
|
|
58
|
+
box-shadow:var(--scalebun-shadow); display:flex; flex-direction:column; overflow:hidden; }
|
|
59
|
+
.scalebun-slideover-right{ right:0; border-left:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slide-in-r .2s ease); }
|
|
60
|
+
.scalebun-slideover-left{ left:0; border-right:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slide-in-l .2s ease); }
|
|
61
|
+
/* BOTTOM SHEET. bottom_sheet is one of the seven legacy layouts and richInApp has always mapped it
|
|
62
|
+
to slideover with placement 'bottom' — but only -right/-left existed, and the surface treated any
|
|
63
|
+
non-'left' placement as right. So every bottom-sheet campaign rendered as a full-height RIGHT panel.
|
|
64
|
+
Overrides the base's top/bottom/width, which describe a vertical edge panel. */
|
|
65
|
+
.scalebun-slideover-bottom{ top:auto; left:0; right:0; bottom:0; width:auto; max-height:82vh;
|
|
66
|
+
border-top:1px solid var(--scalebun-border); border-radius:16px 16px 0 0;
|
|
67
|
+
animation:var(--scalebun-anim-in, scalebun-slideup .22s ease); }
|
|
68
|
+
.scalebun-so-header{ display:flex; justify-content:flex-end; gap:4px; padding:8px 8px 0; }
|
|
69
|
+
/* A grab handle reads as "this came from the bottom edge" — the affordance a sheet has and a side
|
|
70
|
+
panel doesn't. Decorative only; the × button remains the accessible dismiss. */
|
|
71
|
+
.scalebun-slideover-bottom .scalebun-so-header::before{ content:''; position:absolute; top:8px;
|
|
72
|
+
left:50%; transform:translateX(-50%); width:36px; height:4px; border-radius:99px;
|
|
73
|
+
background:var(--scalebun-border); }
|
|
74
|
+
.scalebun-slideover-bottom .scalebun-so-header{ padding-top:16px; }
|
|
75
|
+
.scalebun-so-body{ padding:8px 18px 18px; overflow:auto; flex:1; }
|
|
76
|
+
.scalebun-so-resize{ position:absolute; top:0; bottom:0; width:6px; cursor:ew-resize; }
|
|
77
|
+
.scalebun-slideover-right .scalebun-so-resize{ left:0; }
|
|
78
|
+
.scalebun-slideover-left .scalebun-so-resize{ right:0; }
|
|
79
|
+
.scalebun-so-resize:hover{ background:color-mix(in srgb, var(--scalebun-accent) 40%, transparent); }
|
|
80
|
+
@keyframes scalebun-slide-in-r{ from{ transform:translateX(100%); } to{ transform:none; } }
|
|
81
|
+
@keyframes scalebun-slide-in-l{ from{ transform:translateX(-100%); } to{ transform:none; } }
|
|
82
|
+
|
|
83
|
+
/* S4 — anchored popover */
|
|
84
|
+
.scalebun-popover{ position:absolute; background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);
|
|
85
|
+
border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:14px 16px; max-width:320px;
|
|
86
|
+
animation:scalebun-pop .14s ease; }
|
|
87
|
+
.scalebun-pop-body>*:last-child{ margin-bottom:0; }
|
|
88
|
+
.scalebun-pop-x{ position:absolute; top:6px; inset-inline-end:6px; }
|
|
89
|
+
/* A close button is out of flow, so nothing stops a heading running underneath it — the × then
|
|
90
|
+
lands on a word of the title. Reserving the space is the same thing .scalebun-toolbar-callout
|
|
91
|
+
already did with its right padding. Every surface that pairs an absolute × with a heading needs
|
|
92
|
+
it, which the stressed sweep put at nine of them, not the three the authored copy revealed.
|
|
93
|
+
|
|
94
|
+
LOGICAL, not physical. This was padding-right, correct only while text runs left-to-right: in
|
|
95
|
+
RTL a line ENDS on the left and STARTS under the close button, so the reserved gap sat on the
|
|
96
|
+
side the text was leaving and the × landed on the first word instead of the last. The buttons
|
|
97
|
+
use inset-inline-end for the same reason. Caught by sweeping the catalog in Arabic. */
|
|
98
|
+
.scalebun-popover .scalebun-h,
|
|
99
|
+
.scalebun-coachmark .scalebun-h,
|
|
100
|
+
.scalebun-modal-card .scalebun-h,
|
|
101
|
+
.scalebun-inline .scalebun-h,
|
|
102
|
+
.scalebun-toast .scalebun-h,
|
|
103
|
+
.scalebun-banner .scalebun-h,
|
|
104
|
+
.scalebun-takeover-inner .scalebun-h,
|
|
105
|
+
.scalebun-toolbar-callout .scalebun-h{ padding-inline-end:24px; }
|
|
106
|
+
|
|
107
|
+
/* S5 — coachmark + spotlight */
|
|
108
|
+
.scalebun-coach-spot{ position:fixed; border-radius:8px; box-shadow:0 0 0 9999px rgba(12,10,20,.55);
|
|
109
|
+
pointer-events:none; transition:top .18s ease,left .18s ease,width .18s ease,height .18s ease; }
|
|
110
|
+
.scalebun-coachmark{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);
|
|
111
|
+
border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);
|
|
112
|
+
padding:14px 16px; max-width:300px; animation:scalebun-pop .14s ease; }
|
|
113
|
+
|
|
114
|
+
/* S6 — product tour. The same three phone-only defects fixed in coach/overlay.ts, which carries the
|
|
115
|
+
full reasoning: width is EXPLICIT because a fixed box with left:50% and no width shrink-wraps to
|
|
116
|
+
half the viewport; the heading reserves the space .scalebun-pop-x is absolutely positioned in; and
|
|
117
|
+
the nav's items are flex:none so an overflowing footer wraps intact instead of collapsing the
|
|
118
|
+
progress counter into a one-character column. */
|
|
119
|
+
.scalebun-tour-card{ width:min(320px, calc(100vw - 32px)); }
|
|
120
|
+
.scalebun-tour-card .scalebun-h{ padding-right:20px; }
|
|
121
|
+
/* Centred by transform, and ANIMATED by transform — so the entrance clobbered the centring.
|
|
122
|
+
.scalebun-coachmark carries animation:scalebun-pop, whose keyframes set transform:scale(.96) then
|
|
123
|
+
transform:none. An animated property REPLACES the declared one for the whole run, so for the
|
|
124
|
+
animation's 140ms this card was drawn at left:50%/top:50% with NO translate — sitting half its own
|
|
125
|
+
width down and to the right — then snapped into place when the animation finished. That is the
|
|
126
|
+
visible jump on opening a tour and on every Next.
|
|
127
|
+
The fix keeps the translate inside the keyframes so the centring survives the run. The individual
|
|
128
|
+
translate property would be tidier, but it silently breaks centring where unsupported, and a card
|
|
129
|
+
that never centres is worse than one that briefly animates. */
|
|
130
|
+
.scalebun-tour-center{ top:50%; left:50%; transform:translate(-50%,-50%); animation-name:scalebun-pop-center; }
|
|
131
|
+
@keyframes scalebun-pop-center{
|
|
132
|
+
from{ transform:translate(-50%,-50%) scale(.96); opacity:0; }
|
|
133
|
+
to{ transform:translate(-50%,-50%); opacity:1; } }
|
|
134
|
+
.scalebun-tour-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:14px; flex-wrap:wrap; }
|
|
135
|
+
.scalebun-tour-prog{ font-size:11.5px; color:var(--scalebun-muted); font-variant-numeric:tabular-nums; flex:none; white-space:nowrap; }
|
|
136
|
+
.scalebun-tour-btns{ display:flex; gap:6px; flex:none; }
|
|
137
|
+
.scalebun-tour-btns .scalebun-btn{ padding:6px 12px; font-size:12.5px; }
|
|
138
|
+
|
|
139
|
+
/* S7 — hotspot / beacon */
|
|
140
|
+
.scalebun-beacon{ position:absolute; width:14px; height:14px; padding:0; border:0; border-radius:50%;
|
|
141
|
+
background:var(--scalebun-accent); cursor:pointer; pointer-events:auto; box-shadow:0 0 0 4px color-mix(in srgb, var(--scalebun-accent) 30%, transparent); }
|
|
142
|
+
.scalebun-beacon::after{ content:''; position:absolute; inset:0; border-radius:50%; background:var(--scalebun-accent);
|
|
143
|
+
animation:scalebun-pulse 1.8s ease-out infinite; }
|
|
144
|
+
.scalebun-beacon:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:3px; }
|
|
145
|
+
@keyframes scalebun-pulse{ 0%{ transform:scale(1); opacity:.6; } 100%{ transform:scale(2.6); opacity:0; } }
|
|
146
|
+
.scalebun-beacon-card{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);
|
|
147
|
+
border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);
|
|
148
|
+
padding:12px 14px; max-width:260px; font-size:13px; }
|
|
149
|
+
.scalebun-beacon-card[hidden]{ display:none; }
|
|
150
|
+
|
|
151
|
+
/* S16 — toolbar / menu callout */
|
|
152
|
+
.scalebun-toolbar-callout{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);
|
|
153
|
+
border:1px solid var(--scalebun-border); border-radius:10px; box-shadow:var(--scalebun-shadow);
|
|
154
|
+
padding:10px 30px 10px 12px; max-width:240px; font-size:13px; animation:scalebun-pop .14s ease; }
|
|
155
|
+
|
|
156
|
+
/* S13 — command palette */
|
|
157
|
+
.scalebun-palette-backdrop{ position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:center; pointer-events:auto;
|
|
158
|
+
padding-top:12vh; background:rgba(15,18,26,.45); }
|
|
159
|
+
.scalebun-palette{ width:min(560px, 92%); background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);
|
|
160
|
+
border-radius:14px; box-shadow:var(--scalebun-shadow); overflow:hidden; animation:scalebun-pop .14s ease; }
|
|
161
|
+
.scalebun-palette-input{ width:100%; box-sizing:border-box; border:0; border-bottom:1px solid var(--scalebun-border);
|
|
162
|
+
padding:16px 18px; font:inherit; font-size:15px; background:transparent; color:var(--scalebun-fg); outline:none; }
|
|
163
|
+
.scalebun-palette-list{ list-style:none; margin:0; padding:6px; max-height:50vh; overflow-y:auto; }
|
|
164
|
+
.scalebun-palette-item{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:8px; cursor:pointer; }
|
|
165
|
+
.scalebun-palette-item.active{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); }
|
|
166
|
+
.scalebun-palette-label{ flex:1; font-size:13.5px; }
|
|
167
|
+
.scalebun-palette-hint{ font-size:11.5px; opacity:.7; }
|
|
168
|
+
.scalebun-palette-empty{ padding:16px; text-align:center; color:var(--scalebun-muted); font-size:13px; }
|
|
169
|
+
|
|
170
|
+
/* Every flex ROW below holds text, and a flex item's min-width defaults to its CONTENT — so a single
|
|
171
|
+
unbreakable run (a support URL, a deploy hash) forces the row wider than the surface that contains
|
|
172
|
+
it, no matter that the text itself is allowed to wrap. This is the same defect already fixed on
|
|
173
|
+
.scalebun-cta-row; these are the remaining rows, and between them they were 84 of the sweep's last
|
|
174
|
+
112 findings. The text children already carry overflow-wrap from BLOCKS_CSS — this is what lets
|
|
175
|
+
them actually use it. */
|
|
176
|
+
.scalebun-panel-head, .scalebun-panel-title, .scalebun-cl-head, .scalebun-cl-title,
|
|
177
|
+
.scalebun-cl-item, .scalebun-cl-label, .scalebun-palette-item, .scalebun-code-bar,
|
|
178
|
+
.scalebun-code-lang, .scalebun-code-copy{ min-width:0; overflow-wrap:anywhere; }
|
|
179
|
+
|
|
180
|
+
/* S3 — docked panel + AI shell */
|
|
181
|
+
.scalebun-panel{ position:absolute; top:0; bottom:0; width:360px; display:flex; flex-direction:column;
|
|
182
|
+
background:var(--scalebun-bg); color:var(--scalebun-fg); box-shadow:var(--scalebun-shadow); }
|
|
183
|
+
.scalebun-panel-right{ right:0; border-left:1px solid var(--scalebun-border); }
|
|
184
|
+
.scalebun-panel-left{ left:0; border-right:1px solid var(--scalebun-border); }
|
|
185
|
+
.scalebun-panel-head{ display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid var(--scalebun-border); }
|
|
186
|
+
.scalebun-panel-title{ flex:1; font-weight:700; font-size:14px; }
|
|
187
|
+
.scalebun-panel-thread{ flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; }
|
|
188
|
+
.scalebun-bubble{ max-width:85%; padding:9px 12px; border-radius:12px; font-size:13.5px; line-height:1.45; white-space:pre-wrap; }
|
|
189
|
+
.scalebun-bubble-user{ align-self:flex-end; background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-bottom-right-radius:4px; }
|
|
190
|
+
.scalebun-bubble-assistant{ align-self:flex-start; background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); border-bottom-left-radius:4px; }
|
|
191
|
+
.scalebun-bubble.streaming::after{ content:'▍'; animation:scalebun-blink 1s step-end infinite; }
|
|
192
|
+
@keyframes scalebun-blink{ 50%{ opacity:0; } }
|
|
193
|
+
.scalebun-panel-composer{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--scalebun-border); align-items:flex-end; }
|
|
194
|
+
.scalebun-panel-input{ flex:1; resize:none; border:1px solid var(--scalebun-border); border-radius:10px; padding:9px 11px;
|
|
195
|
+
font:inherit; font-size:13.5px; background:transparent; color:var(--scalebun-fg); max-height:120px; }
|
|
196
|
+
.scalebun-panel-send{ padding:9px 14px; }
|
|
197
|
+
|
|
198
|
+
/* S14 — checklist / onboarding widget */
|
|
199
|
+
.scalebun-checklist{ position:absolute; bottom:16px; right:16px; width:320px; background:var(--scalebun-bg); color:var(--scalebun-fg);
|
|
200
|
+
border:1px solid var(--scalebun-border); border-radius:14px; box-shadow:var(--scalebun-shadow); padding:14px 16px; }
|
|
201
|
+
.scalebun-checklist.complete{ border-color:var(--scalebun-accent); }
|
|
202
|
+
.scalebun-cl-head{ display:flex; align-items:center; gap:6px; margin-bottom:10px; }
|
|
203
|
+
.scalebun-cl-title{ flex:1; font-weight:700; font-size:14px; }
|
|
204
|
+
.scalebun-cl-dock{ font-size:14px; }
|
|
205
|
+
.scalebun-cl-bar{ height:6px; border-radius:3px; background:color-mix(in srgb, var(--scalebun-fg) 10%, transparent); overflow:hidden; }
|
|
206
|
+
.scalebun-cl-fill{ height:100%; background:var(--scalebun-accent); transition:width .25s ease; }
|
|
207
|
+
.scalebun-cl-count{ font-size:11.5px; color:var(--scalebun-muted); margin:6px 0 10px; }
|
|
208
|
+
.scalebun-checklist.collapsed .scalebun-cl-bar, .scalebun-checklist.collapsed .scalebun-cl-count, .scalebun-checklist.collapsed .scalebun-cl-list{ display:none; }
|
|
209
|
+
.scalebun-cl-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
|
|
210
|
+
.scalebun-cl-item{ display:flex; align-items:center; gap:10px; padding:6px 4px; font-size:13.5px; }
|
|
211
|
+
.scalebun-cl-item.done .scalebun-cl-label{ color:var(--scalebun-muted); text-decoration:line-through; }
|
|
212
|
+
.scalebun-cl-check{ width:20px; height:20px; flex:0 0 auto; border-radius:6px; border:1.5px solid var(--scalebun-border);
|
|
213
|
+
background:transparent; color:var(--scalebun-accent-fg); cursor:pointer; font-size:12px; line-height:1; }
|
|
214
|
+
.scalebun-cl-item.done .scalebun-cl-check{ background:var(--scalebun-accent); border-color:var(--scalebun-accent); }
|
|
215
|
+
.scalebun-cl-label{ flex:1; }
|
|
216
|
+
|
|
217
|
+
/* S15 — full-page takeover */
|
|
218
|
+
.scalebun-takeover{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;
|
|
219
|
+
background:var(--scalebun-bg); color:var(--scalebun-fg); padding:32px; overflow:auto; animation:var(--scalebun-anim-in, scalebun-fade .2s ease); }
|
|
220
|
+
.scalebun-takeover-inner{ position:relative; max-width:640px; width:100%; text-align:center; }
|
|
221
|
+
.scalebun-takeover-x{ position:absolute; top:-8px; inset-inline-end:-8px; }
|
|
222
|
+
|
|
223
|
+
/* S12 — floating launcher */
|
|
224
|
+
.scalebun-launcher{ position:absolute; bottom:0; right:0; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
|
|
225
|
+
.scalebun-launcher-fab{ width:52px; height:52px; border-radius:50%; border:0; background:var(--scalebun-accent); color:var(--scalebun-accent-fg);
|
|
226
|
+
font-size:22px; cursor:pointer; box-shadow:var(--scalebun-shadow); }
|
|
227
|
+
.scalebun-launcher-menu{ display:flex; flex-direction:column; gap:2px; background:var(--scalebun-bg); color:var(--scalebun-fg);
|
|
228
|
+
border:1px solid var(--scalebun-border); border-radius:12px; box-shadow:var(--scalebun-shadow); padding:6px; min-width:180px;
|
|
229
|
+
animation:scalebun-pop .14s ease; }
|
|
230
|
+
.scalebun-launcher-menu[hidden]{ display:none; }
|
|
231
|
+
.scalebun-launcher-item{ text-align:left; background:none; border:0; color:var(--scalebun-fg); cursor:pointer; font:inherit;
|
|
232
|
+
font-size:13.5px; padding:9px 12px; border-radius:8px; }
|
|
233
|
+
.scalebun-launcher-item:hover{ background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); }
|
|
234
|
+
`;
|
|
235
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoO3B,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IAM 2.0 surface contract + shared services (P1.2+).
|
|
3
|
+
*
|
|
4
|
+
* A **surface** renders a variant's blocks into a zone with its own chrome (a banner spans the top, a
|
|
5
|
+
* toast stacks in a corner, a modal traps focus). Surfaces are pure renderers over the block system —
|
|
6
|
+
* they never know the variant's identity, only its `surface`/`surfaceOptions`/`blocks`. The engine
|
|
7
|
+
* lazy-loads exactly one surface module per eligible variant (pay-per-capability, §7.4).
|
|
8
|
+
*
|
|
9
|
+
* This module holds the shared plumbing every surface reuses: the block context (CTA/dismiss wiring)
|
|
10
|
+
* and the "real view" observer (≥50% visible for ≥1s = a genuine impression, not just a mount).
|
|
11
|
+
*/
|
|
12
|
+
import type { Variant } from '../types.js';
|
|
13
|
+
import type { ShadowHost } from '../core/host.js';
|
|
14
|
+
import type { DismissMethod } from '../core/analytics.js';
|
|
15
|
+
import { type BlockContext, type BlockOutcome } from '../blocks/blocks.js';
|
|
16
|
+
export interface SurfaceHooks {
|
|
17
|
+
onImpression(): void;
|
|
18
|
+
onView(): void;
|
|
19
|
+
onCtaClick(action: string): void;
|
|
20
|
+
onInteraction(name: string): void;
|
|
21
|
+
onDismiss(method: DismissMethod): void;
|
|
22
|
+
/** Resolve a gamified outcome from the host's backend. Only supplied for the 8 game variants. */
|
|
23
|
+
requestOutcome?: (attempt: number, input?: Record<string, unknown>) => Promise<BlockOutcome>;
|
|
24
|
+
}
|
|
25
|
+
/** Anchor-health sink (§10). Satisfied by the engine's SelfMetrics — heals + failed selectors feed
|
|
26
|
+
* the "anchor health" telemetry (a competitor-beating feedback loop). */
|
|
27
|
+
export interface AnchorMetricsSink {
|
|
28
|
+
recordAnchorRetry(): void;
|
|
29
|
+
recordFailedSelector(selector: string): void;
|
|
30
|
+
}
|
|
31
|
+
export interface SurfaceMountCtx {
|
|
32
|
+
variant: Variant;
|
|
33
|
+
host: ShadowHost;
|
|
34
|
+
doc: Document;
|
|
35
|
+
hooks: SurfaceHooks;
|
|
36
|
+
/** Surface chrome (a close button, backdrop click, Esc) calls this to tear down + record dismiss. */
|
|
37
|
+
requestClose(method: DismissMethod): void;
|
|
38
|
+
/** Optional anchor-health telemetry sink (anchored surfaces report heals/misses). */
|
|
39
|
+
metrics?: AnchorMetricsSink;
|
|
40
|
+
}
|
|
41
|
+
export interface SurfaceInstance {
|
|
42
|
+
el: HTMLElement;
|
|
43
|
+
/** Optional: focus management on mount (modals). */
|
|
44
|
+
afterMount?(): void;
|
|
45
|
+
/** Teardown DOM + observers. */
|
|
46
|
+
destroy(): void;
|
|
47
|
+
}
|
|
48
|
+
export type SurfaceRenderer = (ctx: SurfaceMountCtx) => SurfaceInstance;
|
|
49
|
+
/**
|
|
50
|
+
* Build the block context for a surface. Maps CTA actions to the right hook:
|
|
51
|
+
* - `dismiss` → close the surface (records a `cta` dismiss)
|
|
52
|
+
* - `link` with a deepLink → navigate, after recording the click
|
|
53
|
+
* - anything else → record the click (host wires custom handlers)
|
|
54
|
+
*/
|
|
55
|
+
/** The minimal slice of a mount context the block wiring needs (so inline embeds can reuse it). */
|
|
56
|
+
export interface BlockWiring {
|
|
57
|
+
doc: Document;
|
|
58
|
+
hooks: SurfaceHooks;
|
|
59
|
+
requestClose(method: DismissMethod): void;
|
|
60
|
+
}
|
|
61
|
+
export declare function buildBlockContext(ctx: BlockWiring): BlockContext;
|
|
62
|
+
/** Render the variant's blocks into a fragment the surface can place. */
|
|
63
|
+
export declare function renderVariantBlocks(ctx: SurfaceMountCtx): HTMLElement[];
|
|
64
|
+
/**
|
|
65
|
+
* Fire `onView` once the element has been ≥50% visible for ≥1s (a real "seen"). Falls back to a
|
|
66
|
+
* plain 1s timer where IntersectionObserver is absent (jsdom/old browsers). Returns a disposer.
|
|
67
|
+
*/
|
|
68
|
+
export declare function observeView(el: HTMLElement, onView: () => void, dwellMs?: number): () => void;
|
|
69
|
+
//# sourceMappingURL=surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAkC,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGxG,MAAM,WAAW,YAAY;IAC3B,YAAY,IAAI,IAAI,CAAC;IACrB,MAAM,IAAI,IAAI,CAAC;IACf,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,iGAAiG;IACjG,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC9F;AAED;0EAC0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,qGAAqG;IACrG,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1C,qFAAqF;IACrF,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,WAAW,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB,gCAAgC;IAChC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,eAAe,KAAK,eAAe,CAAC;AAExE;;;;;GAKG;AACH,mGAAmG;AACnG,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CA0BhE;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,EAAE,CAEvE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,OAAO,SAAO,GAAG,MAAM,IAAI,CAuC3F"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { renderBlocks } from '../blocks/blocks.js';
|
|
2
|
+
import { copyToClipboard } from '../core/environment.js';
|
|
3
|
+
export function buildBlockContext(ctx) {
|
|
4
|
+
return {
|
|
5
|
+
doc: ctx.doc,
|
|
6
|
+
onInteraction: (name) => ctx.hooks.onInteraction(name),
|
|
7
|
+
// Forwarded verbatim so every surface gets it without knowing what it is.
|
|
8
|
+
...(ctx.hooks.requestOutcome ? { requestOutcome: ctx.hooks.requestOutcome } : {}),
|
|
9
|
+
onAction: (a) => {
|
|
10
|
+
if (a.action === 'dismiss') {
|
|
11
|
+
ctx.requestClose('cta');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
ctx.hooks.onCtaClick(a.action);
|
|
15
|
+
if (a.action === 'copy' && a.deepLink) {
|
|
16
|
+
// Clipboard CTA (P3.8) — copy the payload (a.deepLink carries the text).
|
|
17
|
+
void copyToClipboard(a.deepLink);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (a.action === 'link' && a.deepLink) {
|
|
21
|
+
try {
|
|
22
|
+
if (typeof window !== 'undefined')
|
|
23
|
+
window.location.assign(a.deepLink);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
/* navigation blocked — the click is still recorded */
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** Render the variant's blocks into a fragment the surface can place. */
|
|
33
|
+
export function renderVariantBlocks(ctx) {
|
|
34
|
+
return renderBlocks(ctx.variant.blocks, buildBlockContext(ctx));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Fire `onView` once the element has been ≥50% visible for ≥1s (a real "seen"). Falls back to a
|
|
38
|
+
* plain 1s timer where IntersectionObserver is absent (jsdom/old browsers). Returns a disposer.
|
|
39
|
+
*/
|
|
40
|
+
export function observeView(el, onView, dwellMs = 1000) {
|
|
41
|
+
let fired = false;
|
|
42
|
+
let timer = null;
|
|
43
|
+
let io = null;
|
|
44
|
+
const stopDwell = () => {
|
|
45
|
+
if (timer != null) {
|
|
46
|
+
clearTimeout(timer);
|
|
47
|
+
timer = null;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
const fire = () => {
|
|
51
|
+
if (fired)
|
|
52
|
+
return;
|
|
53
|
+
fired = true;
|
|
54
|
+
stopDwell();
|
|
55
|
+
io?.disconnect();
|
|
56
|
+
onView();
|
|
57
|
+
};
|
|
58
|
+
const startDwell = () => {
|
|
59
|
+
if (timer == null && !fired)
|
|
60
|
+
timer = setTimeout(fire, dwellMs);
|
|
61
|
+
};
|
|
62
|
+
if (typeof IntersectionObserver === 'undefined') {
|
|
63
|
+
startDwell(); // no IO (jsdom/old browsers) → plain dwell timer
|
|
64
|
+
return () => stopDwell();
|
|
65
|
+
}
|
|
66
|
+
io = new IntersectionObserver((entries) => {
|
|
67
|
+
for (const e of entries) {
|
|
68
|
+
if (e.isIntersecting && e.intersectionRatio >= 0.5)
|
|
69
|
+
startDwell();
|
|
70
|
+
else
|
|
71
|
+
stopDwell();
|
|
72
|
+
}
|
|
73
|
+
}, { threshold: [0, 0.5, 1] });
|
|
74
|
+
io.observe(el);
|
|
75
|
+
return () => {
|
|
76
|
+
stopDwell();
|
|
77
|
+
io?.disconnect();
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* S15 — Full-page Takeover surface (P4.1). A gated interstitial that covers the page: major launch,
|
|
3
|
+
* welcome, or a HARD paywall. Focus-stealing (zone `takeover`) — the Orchestrator's global
|
|
4
|
+
* mutual-exclusion guarantees at most one focus-stealer on screen, ever. Reuses the a11y core
|
|
5
|
+
* (focus-trap + background inert + restore). A hard paywall sets no dismiss options → not closable.
|
|
6
|
+
*/
|
|
7
|
+
import type { SurfaceInstance, SurfaceMountCtx } from './surface.js';
|
|
8
|
+
export declare function takeoverSurface(ctx: SurfaceMountCtx): SurfaceInstance;
|
|
9
|
+
//# sourceMappingURL=takeover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"takeover.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/takeover.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAMlE,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CA4DrE"}
|