@scalebun/web 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +59 -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 +248 -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 +81 -0
- package/dist/browser.js.map +1 -0
- package/dist/config/schema.d.ts +108 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +95 -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 +15 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +15 -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 +73 -0
- package/dist/core/pageContext.js.map +1 -0
- package/dist/core/prune.d.ts +7 -0
- package/dist/core/prune.d.ts.map +1 -0
- package/dist/core/prune.js +31 -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 +50 -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/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 +122 -0
- package/dist/features/analytics/AnalyticsFeature.d.ts.map +1 -0
- package/dist/features/analytics/AnalyticsFeature.js +757 -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 +398 -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 +38 -0
- package/dist/features/analytics/revenue.d.ts.map +1 -0
- package/dist/features/analytics/revenue.js +26 -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 +25 -0
- package/dist/features/analytics/subscription.d.ts.map +1 -0
- package/dist/features/analytics/subscription.js +51 -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 +36 -0
- package/dist/features/bugreport/BugReportFeature.d.ts.map +1 -0
- package/dist/features/bugreport/BugReportFeature.js +55 -0
- package/dist/features/bugreport/BugReportFeature.js.map +1 -0
- package/dist/features/bugreport/collect.d.ts +21 -0
- package/dist/features/bugreport/collect.d.ts.map +1 -0
- package/dist/features/bugreport/collect.js +27 -0
- package/dist/features/bugreport/collect.js.map +1 -0
- package/dist/features/bugreport/widget.d.ts +21 -0
- package/dist/features/bugreport/widget.d.ts.map +1 -0
- package/dist/features/bugreport/widget.js +111 -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 +183 -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 +61 -0
- package/dist/features/engage/EngageFeature.d.ts.map +1 -0
- package/dist/features/engage/EngageFeature.js +221 -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 +203 -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 +78 -0
- package/dist/features/engage/runtime.d.ts.map +1 -0
- package/dist/features/engage/runtime.js +349 -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 +31 -0
- package/dist/features/engage/throttle.d.ts.map +1 -0
- package/dist/features/engage/throttle.js +130 -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 +265 -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 +136 -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 +546 -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 +43 -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 +127 -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 +198 -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 +194 -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 +70 -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 +239 -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 +58 -0
- package/dist/features/inapp/core/targeting.d.ts.map +1 -0
- package/dist/features/inapp/core/targeting.js +181 -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 +219 -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 +92 -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 +88 -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 +72 -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 +66 -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 +52 -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 +186 -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 +62 -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 +199 -0
- package/dist/features/inapp/surfaces/tour.js.map +1 -0
- package/dist/features/inapp/types.d.ts +163 -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 +608 -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 +34 -0
- package/dist/features/journey/InteractionTracker.d.ts.map +1 -0
- package/dist/features/journey/InteractionTracker.js +125 -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 +57 -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 +29 -0
- package/dist/features/journey/friction.d.ts.map +1 -0
- package/dist/features/journey/friction.js +65 -0
- package/dist/features/journey/friction.js.map +1 -0
- package/dist/features/manifest.d.ts +20 -0
- package/dist/features/manifest.d.ts.map +1 -0
- package/dist/features/manifest.js +76 -0
- package/dist/features/manifest.js.map +1 -0
- package/dist/features/network/NetworkFeature.d.ts +56 -0
- package/dist/features/network/NetworkFeature.d.ts.map +1 -0
- package/dist/features/network/NetworkFeature.js +235 -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/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 +141 -0
- package/dist/features/push/softAsk.js.map +1 -0
- package/dist/features/replay/ReplayFeature.d.ts +32 -0
- package/dist/features/replay/ReplayFeature.d.ts.map +1 -0
- package/dist/features/replay/ReplayFeature.js +132 -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 +142 -0
- package/dist/features/replay/engine/interactions.d.ts.map +1 -0
- package/dist/features/replay/engine/interactions.js +371 -0
- package/dist/features/replay/engine/interactions.js.map +1 -0
- package/dist/features/replay/engine/mutations.d.ts +49 -0
- package/dist/features/replay/engine/mutations.d.ts.map +1 -0
- package/dist/features/replay/engine/mutations.js +261 -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 +409 -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 +137 -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 +20 -0
- package/dist/features/replay/lifecycle/cadence.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/cadence.js +62 -0
- package/dist/features/replay/lifecycle/cadence.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/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 +129 -0
- package/dist/features/replay/lifecycle/recorder.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/recorder.js +509 -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 +31 -0
- package/dist/features/scroll/index.d.ts.map +1 -0
- package/dist/features/scroll/index.js +102 -0
- package/dist/features/scroll/index.js.map +1 -0
- package/dist/features/session/sessionManager.d.ts +25 -0
- package/dist/features/session/sessionManager.d.ts.map +1 -0
- package/dist/features/session/sessionManager.js +36 -0
- package/dist/features/session/sessionManager.js.map +1 -0
- package/dist/features/session/sessionStore.d.ts +106 -0
- package/dist/features/session/sessionStore.d.ts.map +1 -0
- package/dist/features/session/sessionStore.js +265 -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 +31 -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 +84 -0
- package/dist/pipeline/pipeline.d.ts.map +1 -0
- package/dist/pipeline/pipeline.js +284 -0
- package/dist/pipeline/pipeline.js.map +1 -0
- package/dist/public/ScaleBunFacade.d.ts +382 -0
- package/dist/public/ScaleBunFacade.d.ts.map +1 -0
- package/dist/public/ScaleBunFacade.js +787 -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 +635 -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 +60 -0
- package/dist/transport/httpClient.d.ts.map +1 -0
- package/dist/transport/httpClient.js +154 -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 +60 -0
|
@@ -0,0 +1,608 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InboxWidget — the opt-in shadow-DOM inbox UI (bell + unread badge + slide-over panel + message list).
|
|
3
|
+
* Loads only when a host calls `inbox.mount()`, in a SEPARATE lazy chunk — teams that render their own
|
|
4
|
+
* UI on the headless controller never pay for this. Shadow DOM (`:host{all:initial}`) gives full CSS
|
|
5
|
+
* isolation both ways — lighter than Intercom's iframe, safer than Braze's host-CSS cards.
|
|
6
|
+
*
|
|
7
|
+
* A2.1 chrome (bell/badge/panel) · A2.2 message list (rows/actions/CTAs) · A2.3 a11y (roles, roving
|
|
8
|
+
* keyboard nav, focus management + trap, live region), themeable CSS custom properties, RTL, category
|
|
9
|
+
* tabs.
|
|
10
|
+
*
|
|
11
|
+
* THEMING: set `--scalebun-inbox-{bg,fg,sub,line,surf,accent,unread,badge}` anywhere they inherit
|
|
12
|
+
* from — `:root`, or the `[data-scalebun-inbox]` host element. Custom properties cross the shadow
|
|
13
|
+
* boundary, and this file reads them with fallbacks rather than declaring them, so an outer value
|
|
14
|
+
* wins. `mount({accent})` overrides even that. See `styles()` for why the distinction matters.
|
|
15
|
+
*/
|
|
16
|
+
import { injectStyle } from '../../../core';
|
|
17
|
+
import { DEFAULT_INBOX_LABELS } from '../types';
|
|
18
|
+
const PIN_SVG = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M12 17v5M9 3h6l-1 6 3 3v2H7v-2l3-3z"/></svg>';
|
|
19
|
+
const ARCHIVE_SVG = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M3 7h18v3H3zM5 10v10h14V10M9 14h6"/></svg>';
|
|
20
|
+
const TRASH_SVG = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13"/></svg>';
|
|
21
|
+
const BELL_SVG = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/></svg>';
|
|
22
|
+
function el(tag, cls, text) {
|
|
23
|
+
const e = document.createElement(tag);
|
|
24
|
+
if (cls)
|
|
25
|
+
e.className = cls;
|
|
26
|
+
if (text != null)
|
|
27
|
+
e.textContent = text;
|
|
28
|
+
return e;
|
|
29
|
+
}
|
|
30
|
+
/** Compact relative time (now / 5m / 3h / 2d / 4w / 6mo). */
|
|
31
|
+
function relTime(ts) {
|
|
32
|
+
const s = Math.max(0, Math.floor((Date.now() - ts) / 1000));
|
|
33
|
+
if (s < 60)
|
|
34
|
+
return 'now';
|
|
35
|
+
const m = Math.floor(s / 60);
|
|
36
|
+
if (m < 60)
|
|
37
|
+
return `${m}m`;
|
|
38
|
+
const h = Math.floor(m / 60);
|
|
39
|
+
if (h < 24)
|
|
40
|
+
return `${h}h`;
|
|
41
|
+
const d = Math.floor(h / 24);
|
|
42
|
+
if (d < 7)
|
|
43
|
+
return `${d}d`;
|
|
44
|
+
const w = Math.floor(d / 7);
|
|
45
|
+
if (w < 5)
|
|
46
|
+
return `${w}w`;
|
|
47
|
+
return `${Math.floor(d / 30)}mo`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* ⚠️ TOKENS ARE READ WITH FALLBACKS, NOT DECLARED ON `:host`.
|
|
51
|
+
*
|
|
52
|
+
* This file used to emit `:host{all:initial; --scalebun-inbox-bg:#fff; …}` — every token declared
|
|
53
|
+
* unconditionally — while its own doc comment claimed *"a host can override its brand by setting"*
|
|
54
|
+
* them. That was false: a custom property declared ON an element beats one INHERITED into it, so a
|
|
55
|
+
* page setting `--scalebun-inbox-bg` on `:root` was silently overridden. Exactly one token was ever
|
|
56
|
+
* reachable (`accent`, via `mount()`); the other seven were decoration.
|
|
57
|
+
*
|
|
58
|
+
* The fix is NOT `--x:var(--x, default)` — a custom property that references itself is a cycle and
|
|
59
|
+
* computes to invalid. Instead nothing is declared, and every USE carries its own fallback:
|
|
60
|
+
* `var(--scalebun-inbox-bg, #fff)`. An outer declaration inherits through the shadow boundary and
|
|
61
|
+
* wins; with no outer declaration the fallback applies.
|
|
62
|
+
*
|
|
63
|
+
* Precedence, deliberately: an explicit `mount({accent})` still beats host CSS, because an API call
|
|
64
|
+
* is a stronger statement of intent than a stylesheet. It is the ONLY token declared here, and only
|
|
65
|
+
* when the caller actually passed one.
|
|
66
|
+
*/
|
|
67
|
+
function styles(dark, corner, rtl, layout, accent, remote) {
|
|
68
|
+
// Physical side flips in RTL so the panel slides in from the reading-start edge.
|
|
69
|
+
const startSide = corner.includes('right') ? 'right' : 'left';
|
|
70
|
+
const side = rtl ? (startSide === 'right' ? 'left' : 'right') : startSide;
|
|
71
|
+
const vy = corner.includes('bottom') ? 'bottom' : 'top';
|
|
72
|
+
/**
|
|
73
|
+
* PRECEDENCE, in one line: `mount()` > host CSS > dashboard theme > built-in default.
|
|
74
|
+
*
|
|
75
|
+
* The remote value is substituted as the FALLBACK, never declared on `:host`. Declaring it would
|
|
76
|
+
* beat the host's own stylesheet — re-creating exactly the bug P0 fixed, where setting
|
|
77
|
+
* `--scalebun-inbox-bg` on `:root` appeared to do nothing. A developer must always be able to pin
|
|
78
|
+
* a value locally; the dashboard's job is to replace the DEFAULT, not to overrule the page.
|
|
79
|
+
*/
|
|
80
|
+
const v = (name, val) => `var(--scalebun-inbox-${name},${remote?.[name] ?? val})`;
|
|
81
|
+
const BG = v('bg', dark ? '#1b1922' : '#ffffff'), FG = v('fg', dark ? '#edeaf2' : '#221e30'), SUB = v('sub', dark ? '#9a95a6' : '#6b6580'), LINE = v('line', dark ? 'rgba(255,255,255,.10)' : '#eae7f2'), SURF = v('surf', dark ? '#262131' : '#f7f6fb'), PP = v('accent', '#7c6cf0'), UNREAD = v('unread', dark ? 'rgba(124,108,240,.10)' : 'rgba(124,108,240,.06)'), BADGE = v('badge', '#ff5b6b');
|
|
82
|
+
/**
|
|
83
|
+
* P1 — non-colour tokens. Colour alone does not make this look like the host's product; font and
|
|
84
|
+
* corner rounding do most of the work.
|
|
85
|
+
*
|
|
86
|
+
* ⚠️ Each site keeps ITS CURRENT VALUE as the fallback, so default appearance is byte-identical and
|
|
87
|
+
* the tokens are purely additive. `--radius` and `--radius-sm` are therefore read with different
|
|
88
|
+
* defaults at different sites (10/9 vs 8/7/6) — deliberate: setting one knob unifies them, setting
|
|
89
|
+
* none changes nothing.
|
|
90
|
+
*
|
|
91
|
+
* ⚠️ Deliberately NOT tokenised:
|
|
92
|
+
* • pill/circle radii (`50%`, `999px`) — shape, not style; a token there breaks the bell and tabs.
|
|
93
|
+
* • `--max-height` — the panel is a full-height slide-over (`top:0;bottom:0`), so the token would
|
|
94
|
+
* do nothing. A control that cannot take effect is worse than a missing one.
|
|
95
|
+
* • `--pad` — the row's padding is asymmetric (`12px 12px 12px 15px`, the 15px reserving space for
|
|
96
|
+
* the unread dot); tokenising one side of that is noise.
|
|
97
|
+
*/
|
|
98
|
+
const FONT = v('font', 'system-ui,-apple-system,Segoe UI,Roboto,sans-serif'), SHADOW = v('shadow', '0 0 40px rgba(0,0,0,.22)'), WIDTH = v('width', '380px'), GAP = v('gap', '11px'), Z = v('z', '2147483600');
|
|
99
|
+
/** Same token, per-site default → today's look is preserved exactly. */
|
|
100
|
+
const rad = (fallback) => v('radius', fallback);
|
|
101
|
+
const radSm = (fallback) => v('radius-sm', fallback);
|
|
102
|
+
// Only what the caller explicitly asked for is declared — declaring more is what broke overrides.
|
|
103
|
+
const forced = accent ? `--scalebun-inbox-accent:${accent};` : '';
|
|
104
|
+
return `
|
|
105
|
+
:host{all:initial;direction:${rtl ? 'rtl' : 'ltr'};${forced}}
|
|
106
|
+
*{box-sizing:border-box;font-family:${FONT}}
|
|
107
|
+
button:focus-visible,.row:focus-visible,.tab:focus-visible{outline:2px solid ${PP};outline-offset:2px}
|
|
108
|
+
.live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
|
|
109
|
+
.bell{position:fixed;${vy}:22px;${side}:22px;width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;
|
|
110
|
+
background:${PP};color:#fff;display:grid;place-items:center;box-shadow:0 6px 24px rgba(108,92,231,.4);z-index:${Z}}
|
|
111
|
+
.bell:hover{filter:brightness(1.06)}
|
|
112
|
+
.bell svg{width:22px;height:22px}
|
|
113
|
+
.badge{position:absolute;top:-4px;${side}:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;
|
|
114
|
+
background:${BADGE};color:#fff;font-size:11px;font-weight:700;display:none;align-items:center;justify-content:center;line-height:1}
|
|
115
|
+
.badge.on{display:flex}
|
|
116
|
+
.scrim{position:fixed;inset:0;background:rgba(10,8,16,.42);z-index:calc(${Z} + 1);opacity:0;pointer-events:none;transition:opacity .2s}
|
|
117
|
+
.scrim.on{opacity:1;pointer-events:auto}
|
|
118
|
+
.panel{position:fixed;${vy === 'bottom' ? 'bottom:0;top:0' : 'top:0;bottom:0'};${side}:0;width:${WIDTH};max-width:94vw;background:${BG};color:${FG};
|
|
119
|
+
z-index:calc(${Z} + 2);display:flex;flex-direction:column;box-shadow:${SHADOW};
|
|
120
|
+
transform:translateX(${side === 'right' ? '100%' : '-100%'});transition:transform .26s cubic-bezier(.4,0,.2,1)}
|
|
121
|
+
.panel.open{transform:translateX(0)}
|
|
122
|
+
.hd{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid ${LINE}}
|
|
123
|
+
.hd .ti{font-size:15px;font-weight:700}
|
|
124
|
+
.hd .mt{font-size:12px;color:${SUB};margin-top:2px}
|
|
125
|
+
.x{width:30px;height:30px;border-radius:${radSm("8px")};border:1px solid ${LINE};background:${SURF};color:${SUB};cursor:pointer;font-size:17px;line-height:1;display:grid;place-items:center}
|
|
126
|
+
.x:hover{color:${FG}}
|
|
127
|
+
.tabs{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid ${LINE};overflow-x:auto}
|
|
128
|
+
.tab{flex-shrink:0;border:none;background:${SURF};color:${SUB};border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer}
|
|
129
|
+
.tab.on{background:${PP};color:#fff}
|
|
130
|
+
.body{flex:1;overflow-y:auto;padding:6px}
|
|
131
|
+
.empty{padding:48px 20px;text-align:center;color:${SUB};font-size:13px}
|
|
132
|
+
.empty b{display:block;color:${FG};font-size:14px;margin-bottom:5px}
|
|
133
|
+
.list{display:flex;flex-direction:column}
|
|
134
|
+
.row{position:relative;display:flex;gap:${GAP};padding:12px 12px 12px 15px;border-radius:${rad("10px")};cursor:pointer}
|
|
135
|
+
.row:hover{background:${SURF}}
|
|
136
|
+
.row.unread{background:${UNREAD}}
|
|
137
|
+
.dot{position:absolute;left:5px;top:18px;width:7px;height:7px;border-radius:50%;background:${PP};opacity:0}
|
|
138
|
+
.row.unread .dot{opacity:1}
|
|
139
|
+
.ic{flex-shrink:0;width:34px;height:34px;border-radius:${rad("9px")};background:${SURF};display:grid;place-items:center;overflow:hidden;font-weight:700;color:${PP};font-size:14px}
|
|
140
|
+
.ic img{width:100%;height:100%;object-fit:cover}
|
|
141
|
+
.rc{flex:1;min-width:0}
|
|
142
|
+
.rtop{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
|
|
143
|
+
.rt{font-size:13.5px;font-weight:600;color:${FG};overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
144
|
+
.row.unread .rt{font-weight:700}
|
|
145
|
+
.rtime{flex-shrink:0;font-size:11px;color:${SUB}}
|
|
146
|
+
.rb{font-size:12.5px;color:${SUB};line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
|
|
147
|
+
.rcta{display:flex;gap:7px;margin-top:8px}
|
|
148
|
+
.rcta button{background:${PP};color:#fff;border:none;border-radius:${radSm("7px")};padding:5px 11px;font-size:12px;font-weight:600;cursor:pointer}
|
|
149
|
+
.rcta button.sec{background:${SURF};color:${FG}}
|
|
150
|
+
/* ⚠️ Was \`position:absolute\` floating over the row, which meant NO space was reserved for it and the
|
|
151
|
+
title ran underneath — the buttons masked their own row's text (and in RTL they landed on top of
|
|
152
|
+
the title rather than the timestamp). A hover-only overlay only looks fine while the text is short.
|
|
153
|
+
Now a real flex child: it always occupies its column, so nothing can ever slide under it, and
|
|
154
|
+
\`visibility\` (not \`display\`) means revealing it on hover causes no reflow. */
|
|
155
|
+
.ract{flex-shrink:0;align-self:flex-start;display:flex;gap:2px;border-radius:${radSm("8px")};padding:2px;visibility:hidden}
|
|
156
|
+
.row:hover .ract,.row:focus-within .ract{visibility:visible}
|
|
157
|
+
.ract button{width:26px;height:26px;border:none;background:none;color:${SUB};cursor:pointer;border-radius:${radSm("6px")};display:grid;place-items:center}
|
|
158
|
+
.ract button:hover{background:${SURF};color:${FG}}
|
|
159
|
+
.ract button.on{color:${PP}}
|
|
160
|
+
.ract svg{width:15px;height:15px}
|
|
161
|
+
${layout !== 'dropdown' ? '' : `
|
|
162
|
+
/* ── dropdown ────────────────────────────────────────────────────────────────
|
|
163
|
+
A compact popover anchored under the host's own trigger, for a bell that already lives in a navbar.
|
|
164
|
+
Everything below OVERRIDES the drawer rules above rather than forking the stylesheet — the rows,
|
|
165
|
+
tabs, a11y wiring and theming are identical, so only geometry changes.
|
|
166
|
+
|
|
167
|
+
⚠️ \`inset:auto\` first: the drawer pins all four edges, and leaving even one of them set makes the
|
|
168
|
+
panel stretch instead of sizing to its content. The anchor coordinates are written inline by
|
|
169
|
+
\`positionDropdown()\` at open time, because they depend on where the trigger is on screen. */
|
|
170
|
+
.panel{inset:auto;top:auto;bottom:auto;left:auto;right:auto;
|
|
171
|
+
height:auto;max-height:min(70vh,520px);width:min(${WIDTH},calc(100vw - 24px));
|
|
172
|
+
border:1px solid ${LINE};border-radius:${rad('14px')};overflow:hidden;
|
|
173
|
+
transform:translateY(-6px) scale(.98);opacity:0;transform-origin:top ${side};
|
|
174
|
+
transition:opacity .14s ease-out,transform .14s ease-out}
|
|
175
|
+
.panel.open{transform:none;opacity:1}
|
|
176
|
+
/* No dimming: a dropdown is a light-touch surface, and a full-screen scrim over a navbar menu reads
|
|
177
|
+
as a modal. It still catches outside clicks — hence transparent rather than removed. */
|
|
178
|
+
.scrim{background:transparent}
|
|
179
|
+
.bell{display:none} /* the host's trigger IS the bell here */
|
|
180
|
+
.hd{padding:12px 14px}
|
|
181
|
+
.body{max-height:none}
|
|
182
|
+
.foot{display:flex;border-top:1px solid ${LINE};padding:8px}
|
|
183
|
+
.foot button{flex:1;border:none;background:none;color:${PP};font-size:13px;font-weight:600;
|
|
184
|
+
cursor:pointer;padding:8px;border-radius:${radSm('8px')}}
|
|
185
|
+
.foot button:hover{background:${SURF}}
|
|
186
|
+
`}
|
|
187
|
+
@media(prefers-reduced-motion:reduce){.panel,.scrim{transition:none}}`;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @param remote Dashboard-authored theme, applied UNDER `opts` and under the host's own CSS.
|
|
191
|
+
* Passed separately from `opts` on purpose: it is not something a host sets, and putting it in the
|
|
192
|
+
* public options type would invite a caller to hand-roll it and be surprised by the precedence.
|
|
193
|
+
*/
|
|
194
|
+
export function mountInbox(inbox, opts, remote) {
|
|
195
|
+
const corner = opts.position ?? 'bottom-right';
|
|
196
|
+
/**
|
|
197
|
+
* 🔴 Direction is INHERITED, whatever the shadow boundary suggests.
|
|
198
|
+
*
|
|
199
|
+
* `:host{all:initial}` looks like it isolates everything, but `all` explicitly does NOT reset
|
|
200
|
+
* `direction` or `unicode-bidi` (the same exception that lets our custom properties through). So an
|
|
201
|
+
* Arabic host page's `dir="rtl"` reaches the widget regardless — while `rtl` defaulted to false, so
|
|
202
|
+
* the LAYOUT was computed for LTR. Text flowed right-to-left inside a left-to-right shell: title
|
|
203
|
+
* and close button swapped, row content right-aligned, action buttons on the wrong edge.
|
|
204
|
+
*
|
|
205
|
+
* Two fixes, and both are needed:
|
|
206
|
+
* 1. Default `rtl` from the PAGE, so an Arabic site is mirrored correctly with no config at all.
|
|
207
|
+
* 2. Declare `direction` explicitly on `:host` (below), so the text direction and the computed
|
|
208
|
+
* layout can never disagree again — including when a host passes `rtl:false` deliberately.
|
|
209
|
+
*/
|
|
210
|
+
const pageRtl = typeof document !== 'undefined' &&
|
|
211
|
+
(document.documentElement.getAttribute('dir') === 'rtl' ||
|
|
212
|
+
(typeof getComputedStyle !== 'undefined' &&
|
|
213
|
+
getComputedStyle(document.documentElement).direction === 'rtl'));
|
|
214
|
+
const rtl = opts.rtl ?? pageRtl;
|
|
215
|
+
/**
|
|
216
|
+
* ⚠️ A dropdown with nothing to anchor to falls back to the drawer, rather than floating in a
|
|
217
|
+
* corner pretending to be attached to something. The `trigger` is what makes it a dropdown; without
|
|
218
|
+
* one the layout is a claim the DOM cannot support.
|
|
219
|
+
*/
|
|
220
|
+
const layout = opts.layout === 'dropdown' && resolveTrigger(opts.trigger) ? 'dropdown' : 'drawer';
|
|
221
|
+
// ⚠️ NOT defaulted here. `?? '#7c6cf0'` would make every mount() an explicit accent, which is
|
|
222
|
+
// precisely what blocked host CSS from ever taking effect. Undefined means "not asked for" and
|
|
223
|
+
// lets the token fall through to a host value, then to the default inside `styles()`.
|
|
224
|
+
const accent = opts.accent;
|
|
225
|
+
// Partial override: an unset key keeps the English default rather than rendering blank.
|
|
226
|
+
// Layered lowest-to-highest: built-in < dashboard < mount(). Same order as the tokens.
|
|
227
|
+
const L = { ...DEFAULT_INBOX_LABELS, ...(remote?.labels ?? {}), ...(opts.labels ?? {}) };
|
|
228
|
+
const fmtTime = opts.formatTime ?? relTime;
|
|
229
|
+
const dark = opts.theme ? opts.theme === 'dark'
|
|
230
|
+
: typeof matchMedia !== 'undefined' && matchMedia('(prefers-color-scheme: dark)').matches;
|
|
231
|
+
const host = document.createElement('div');
|
|
232
|
+
host.setAttribute('data-scalebun-inbox', '');
|
|
233
|
+
const root = host.attachShadow({ mode: 'open' });
|
|
234
|
+
injectStyle(root, styles(dark, corner, rtl, layout, accent, remote?.tokens));
|
|
235
|
+
document.body.appendChild(host);
|
|
236
|
+
// ── panel + scrim ──
|
|
237
|
+
const scrim = el('div', 'scrim');
|
|
238
|
+
const panel = el('div', 'panel');
|
|
239
|
+
panel.setAttribute('role', 'dialog');
|
|
240
|
+
panel.setAttribute('aria-modal', 'true');
|
|
241
|
+
panel.setAttribute('aria-label', L.panelAria);
|
|
242
|
+
panel.setAttribute('aria-hidden', 'true');
|
|
243
|
+
if (rtl)
|
|
244
|
+
panel.setAttribute('dir', 'rtl');
|
|
245
|
+
const hd = el('div', 'hd');
|
|
246
|
+
const titleWrap = el('div');
|
|
247
|
+
const ti = el('div', 'ti', L.title);
|
|
248
|
+
const mt = el('div', 'mt');
|
|
249
|
+
titleWrap.append(ti, mt);
|
|
250
|
+
const x = document.createElement('button');
|
|
251
|
+
x.className = 'x';
|
|
252
|
+
x.type = 'button';
|
|
253
|
+
x.setAttribute('aria-label', L.close);
|
|
254
|
+
x.textContent = '×';
|
|
255
|
+
hd.append(titleWrap, x);
|
|
256
|
+
const tabsEl = el('div', 'tabs');
|
|
257
|
+
tabsEl.setAttribute('role', 'tablist');
|
|
258
|
+
tabsEl.style.display = 'none'; // shown only when ≥2 categories exist
|
|
259
|
+
const bodyEl = el('div', 'body');
|
|
260
|
+
const live = el('div', 'live');
|
|
261
|
+
live.setAttribute('role', 'status');
|
|
262
|
+
live.setAttribute('aria-live', 'polite');
|
|
263
|
+
panel.append(hd, tabsEl, bodyEl, live);
|
|
264
|
+
/**
|
|
265
|
+
* "View all" — rendered ONLY when the host gave us somewhere to send people.
|
|
266
|
+
*
|
|
267
|
+
* The SDK never navigates on its own: the host owns its routes, and a button that goes nowhere is
|
|
268
|
+
* worse than no button (the rule that removed the ungated Urgency/Topic controls from the push
|
|
269
|
+
* composer). Mostly a dropdown concern, since a compact popover deliberately shows only the newest
|
|
270
|
+
* few — but a drawer host may want it too, so it is keyed off `onViewAll`, not off `layout`.
|
|
271
|
+
*/
|
|
272
|
+
if (opts.onViewAll) {
|
|
273
|
+
const foot = el('div', 'foot');
|
|
274
|
+
const viewAll = document.createElement('button');
|
|
275
|
+
viewAll.type = 'button';
|
|
276
|
+
viewAll.textContent = L.viewAll;
|
|
277
|
+
viewAll.addEventListener('click', () => {
|
|
278
|
+
close();
|
|
279
|
+
opts.onViewAll?.();
|
|
280
|
+
});
|
|
281
|
+
foot.appendChild(viewAll);
|
|
282
|
+
panel.appendChild(foot);
|
|
283
|
+
}
|
|
284
|
+
root.append(scrim, panel);
|
|
285
|
+
// ── optional built-in bell (skipped when the host supplies its own trigger) ──
|
|
286
|
+
let bell;
|
|
287
|
+
let badge;
|
|
288
|
+
const external = resolveTrigger(opts.trigger);
|
|
289
|
+
if (!external) {
|
|
290
|
+
bell = document.createElement('button');
|
|
291
|
+
bell.className = 'bell';
|
|
292
|
+
bell.type = 'button';
|
|
293
|
+
bell.setAttribute('aria-label', L.open);
|
|
294
|
+
bell.setAttribute('aria-expanded', 'false');
|
|
295
|
+
bell.setAttribute('aria-haspopup', 'dialog');
|
|
296
|
+
// A string icon goes in as TEXT (an emoji or initial); markup must arrive as a real element, so
|
|
297
|
+
// the host decides what is safe to inject rather than us parsing arbitrary HTML.
|
|
298
|
+
if (typeof opts.icon === 'string')
|
|
299
|
+
bell.textContent = opts.icon;
|
|
300
|
+
else if (opts.icon)
|
|
301
|
+
bell.appendChild(opts.icon);
|
|
302
|
+
else
|
|
303
|
+
bell.innerHTML = BELL_SVG;
|
|
304
|
+
badge = document.createElement('span');
|
|
305
|
+
badge.className = 'badge';
|
|
306
|
+
badge.setAttribute('aria-hidden', 'true');
|
|
307
|
+
bell.appendChild(badge);
|
|
308
|
+
root.appendChild(bell);
|
|
309
|
+
}
|
|
310
|
+
const trigger = external ?? bell;
|
|
311
|
+
// ── open/close + focus management ──
|
|
312
|
+
let isOpen = false;
|
|
313
|
+
let restoreFocus = null;
|
|
314
|
+
let pendingFocus = false; // move focus into the panel once the first list render completes
|
|
315
|
+
/**
|
|
316
|
+
* Pin the dropdown under its trigger.
|
|
317
|
+
*
|
|
318
|
+
* Measured at OPEN time, not at mount: a navbar trigger moves with scroll, responsive reflow and
|
|
319
|
+
* sticky headers, so coordinates captured once would drift and the panel would detach from the
|
|
320
|
+
* button it belongs to.
|
|
321
|
+
*
|
|
322
|
+
* ⚠️ Clamped to the viewport on both axes. An anchor near the window edge would otherwise push the
|
|
323
|
+
* panel half off-screen — and on the block axis it flips ABOVE the trigger when there is not enough
|
|
324
|
+
* room below, which is the case a fixed offset always gets wrong.
|
|
325
|
+
*/
|
|
326
|
+
const positionDropdown = () => {
|
|
327
|
+
if (layout !== 'dropdown' || !external)
|
|
328
|
+
return;
|
|
329
|
+
const r = external.getBoundingClientRect();
|
|
330
|
+
const w = panel.offsetWidth || 360;
|
|
331
|
+
const h = panel.offsetHeight || 420;
|
|
332
|
+
const M = 8;
|
|
333
|
+
// Align to the trigger's reading-start edge, then clamp.
|
|
334
|
+
const wantLeft = rtl ? r.right - w : r.left;
|
|
335
|
+
panel.style.left = `${Math.max(M, Math.min(wantLeft, window.innerWidth - w - M))}px`;
|
|
336
|
+
const below = window.innerHeight - r.bottom;
|
|
337
|
+
panel.style.top = below >= h + M || below >= r.top
|
|
338
|
+
? `${r.bottom + 6}px`
|
|
339
|
+
: `${Math.max(M, r.top - h - 6)}px`;
|
|
340
|
+
};
|
|
341
|
+
const setOpen = (v) => {
|
|
342
|
+
if (v === isOpen)
|
|
343
|
+
return;
|
|
344
|
+
isOpen = v;
|
|
345
|
+
if (v)
|
|
346
|
+
positionDropdown();
|
|
347
|
+
panel.classList.toggle('open', v);
|
|
348
|
+
scrim.classList.toggle('on', v);
|
|
349
|
+
panel.setAttribute('aria-hidden', v ? 'false' : 'true');
|
|
350
|
+
bell?.setAttribute('aria-expanded', String(v));
|
|
351
|
+
if (v) {
|
|
352
|
+
restoreFocus = root.activeElement ?? trigger ?? null;
|
|
353
|
+
pendingFocus = true;
|
|
354
|
+
void inbox.refresh();
|
|
355
|
+
scheduleRender();
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
restoreFocus?.focus();
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
const open = () => setOpen(true);
|
|
362
|
+
const close = () => setOpen(false);
|
|
363
|
+
const toggle = () => setOpen(!isOpen);
|
|
364
|
+
const onTriggerClick = () => toggle();
|
|
365
|
+
bell?.addEventListener('click', onTriggerClick);
|
|
366
|
+
external?.addEventListener('click', onTriggerClick);
|
|
367
|
+
x.addEventListener('click', close);
|
|
368
|
+
scrim.addEventListener('click', close);
|
|
369
|
+
// panel-level keyboard: Escape closes; Tab is trapped inside the dialog.
|
|
370
|
+
const onPanelKey = (e) => {
|
|
371
|
+
if (e.key === 'Escape') {
|
|
372
|
+
e.stopPropagation();
|
|
373
|
+
close();
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
if (e.key === 'Tab') {
|
|
377
|
+
const f = focusables();
|
|
378
|
+
const first = f[0], last = f[f.length - 1];
|
|
379
|
+
if (!first || !last)
|
|
380
|
+
return;
|
|
381
|
+
const active = root.activeElement;
|
|
382
|
+
if (e.shiftKey && active === first) {
|
|
383
|
+
e.preventDefault();
|
|
384
|
+
last.focus();
|
|
385
|
+
}
|
|
386
|
+
else if (!e.shiftKey && active === last) {
|
|
387
|
+
e.preventDefault();
|
|
388
|
+
first.focus();
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
panel.addEventListener('keydown', onPanelKey);
|
|
393
|
+
function focusables() {
|
|
394
|
+
return [...panel.querySelectorAll('button, [tabindex="0"]')];
|
|
395
|
+
}
|
|
396
|
+
// ── reactive badge + header count + live announce ──
|
|
397
|
+
const unsub = inbox.subscribe((s) => {
|
|
398
|
+
const n = s.unreadCount;
|
|
399
|
+
if (badge) {
|
|
400
|
+
badge.textContent = n > 99 ? '99+' : String(n);
|
|
401
|
+
badge.classList.toggle('on', n > 0);
|
|
402
|
+
}
|
|
403
|
+
mt.textContent = n > 0 ? L.unread(n) : L.noUnread;
|
|
404
|
+
if (bell)
|
|
405
|
+
bell.setAttribute('aria-label', n > 0 ? L.openUnread(n) : L.open);
|
|
406
|
+
if (isOpen)
|
|
407
|
+
scheduleRender();
|
|
408
|
+
});
|
|
409
|
+
// ── list rendering + category tabs + keyboard nav ──
|
|
410
|
+
let activeCat = null;
|
|
411
|
+
function emptyEl() {
|
|
412
|
+
// ⚠️ Was `innerHTML = '<b>…</b>…'`. Once the copy is host-supplied that becomes an injection
|
|
413
|
+
// point in every page that mounts the widget, so the heading and body are separate nodes and
|
|
414
|
+
// both go in as text.
|
|
415
|
+
const e = el('div', 'empty');
|
|
416
|
+
e.appendChild(el('b', undefined, L.emptyTitle));
|
|
417
|
+
e.appendChild(document.createTextNode(L.emptyBody));
|
|
418
|
+
return e;
|
|
419
|
+
}
|
|
420
|
+
function iconBtn(svg, label, fn) {
|
|
421
|
+
const b = document.createElement('button');
|
|
422
|
+
b.type = 'button';
|
|
423
|
+
b.innerHTML = svg;
|
|
424
|
+
b.setAttribute('aria-label', label);
|
|
425
|
+
b.title = label;
|
|
426
|
+
b.addEventListener('click', (e) => { e.stopPropagation(); fn(); });
|
|
427
|
+
return b;
|
|
428
|
+
}
|
|
429
|
+
function buildRow(m) {
|
|
430
|
+
const row = el('div', 'row' + (m.state === 'unread' ? ' unread' : ''));
|
|
431
|
+
row.setAttribute('role', 'listitem');
|
|
432
|
+
row.tabIndex = 0;
|
|
433
|
+
row.setAttribute('aria-label', `${m.title}${m.state === 'unread' ? ', unread' : ''}`);
|
|
434
|
+
row.dataset.id = m.id;
|
|
435
|
+
row.appendChild(el('span', 'dot'));
|
|
436
|
+
const ic = el('div', 'ic');
|
|
437
|
+
if (m.iconUrl) {
|
|
438
|
+
const img = document.createElement('img');
|
|
439
|
+
img.src = m.iconUrl;
|
|
440
|
+
img.alt = '';
|
|
441
|
+
ic.appendChild(img);
|
|
442
|
+
}
|
|
443
|
+
else
|
|
444
|
+
ic.textContent = (m.category?.[0] ?? '•').toUpperCase();
|
|
445
|
+
row.appendChild(ic);
|
|
446
|
+
const rc = el('div', 'rc');
|
|
447
|
+
const top = el('div', 'rtop');
|
|
448
|
+
top.appendChild(el('div', 'rt', m.title));
|
|
449
|
+
top.appendChild(el('span', 'rtime', fmtTime(m.createdAt)));
|
|
450
|
+
rc.appendChild(top);
|
|
451
|
+
if (m.body)
|
|
452
|
+
rc.appendChild(el('div', 'rb', m.body));
|
|
453
|
+
if (m.cta?.length) {
|
|
454
|
+
const cw = el('div', 'rcta');
|
|
455
|
+
m.cta.slice(0, 2).forEach((c, i) => {
|
|
456
|
+
const b = document.createElement('button');
|
|
457
|
+
if (i > 0)
|
|
458
|
+
b.className = 'sec';
|
|
459
|
+
b.textContent = c.label;
|
|
460
|
+
b.addEventListener('click', (e) => { e.stopPropagation(); inbox.act(m.id, c.key); });
|
|
461
|
+
cw.appendChild(b);
|
|
462
|
+
});
|
|
463
|
+
rc.appendChild(cw);
|
|
464
|
+
}
|
|
465
|
+
row.appendChild(rc);
|
|
466
|
+
const act = el('div', 'ract');
|
|
467
|
+
const pinBtn = iconBtn(PIN_SVG, m.pinned ? L.unpin : L.pin, () => void inbox.pin(m.id, !m.pinned));
|
|
468
|
+
if (m.pinned)
|
|
469
|
+
pinBtn.classList.add('on');
|
|
470
|
+
act.append(pinBtn, iconBtn(ARCHIVE_SVG, L.archive, () => void inbox.archive(m.id)), iconBtn(TRASH_SVG, L.delete, () => void inbox.remove(m.id)));
|
|
471
|
+
row.appendChild(act);
|
|
472
|
+
row.addEventListener('click', () => { if (m.state === 'unread')
|
|
473
|
+
void inbox.markRead(m.id); });
|
|
474
|
+
return row;
|
|
475
|
+
}
|
|
476
|
+
// roving keyboard nav over rows (↑/↓ move focus, Enter reads, Delete archives, P pins)
|
|
477
|
+
function onListKey(e) {
|
|
478
|
+
const row = e.target.closest('.row');
|
|
479
|
+
if (!row)
|
|
480
|
+
return;
|
|
481
|
+
const rows = [...bodyEl.querySelectorAll('.row')];
|
|
482
|
+
const i = rows.indexOf(row);
|
|
483
|
+
const id = row.dataset.id;
|
|
484
|
+
if (e.key === 'ArrowDown') {
|
|
485
|
+
e.preventDefault();
|
|
486
|
+
rows[Math.min(rows.length - 1, i + 1)]?.focus();
|
|
487
|
+
}
|
|
488
|
+
else if (e.key === 'ArrowUp') {
|
|
489
|
+
e.preventDefault();
|
|
490
|
+
rows[Math.max(0, i - 1)]?.focus();
|
|
491
|
+
}
|
|
492
|
+
else if (e.key === 'Enter' || e.key === ' ') {
|
|
493
|
+
e.preventDefault();
|
|
494
|
+
void inbox.markRead(id);
|
|
495
|
+
}
|
|
496
|
+
else if (e.key === 'Delete' || e.key === 'Backspace') {
|
|
497
|
+
e.preventDefault();
|
|
498
|
+
void inbox.archive(id);
|
|
499
|
+
rows[Math.min(rows.length - 1, i + 1)]?.focus();
|
|
500
|
+
}
|
|
501
|
+
else if (e.key.toLowerCase() === 'p') {
|
|
502
|
+
e.preventDefault();
|
|
503
|
+
void inbox.pin(id);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
bodyEl.addEventListener('keydown', onListKey);
|
|
507
|
+
function renderTabs(cats) {
|
|
508
|
+
if (cats.length < 2) {
|
|
509
|
+
tabsEl.style.display = 'none';
|
|
510
|
+
tabsEl.textContent = '';
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
tabsEl.style.display = 'flex';
|
|
514
|
+
tabsEl.textContent = '';
|
|
515
|
+
const mk = (label, cat) => {
|
|
516
|
+
const b = document.createElement('button');
|
|
517
|
+
b.className = 'tab' + (activeCat === cat ? ' on' : '');
|
|
518
|
+
b.type = 'button';
|
|
519
|
+
b.textContent = label;
|
|
520
|
+
b.setAttribute('role', 'tab');
|
|
521
|
+
b.setAttribute('aria-selected', String(activeCat === cat));
|
|
522
|
+
b.addEventListener('click', () => { activeCat = cat; scheduleRender(); });
|
|
523
|
+
return b;
|
|
524
|
+
};
|
|
525
|
+
tabsEl.appendChild(mk(L.allTab, null));
|
|
526
|
+
for (const c of cats)
|
|
527
|
+
tabsEl.appendChild(mk(c.charAt(0).toUpperCase() + c.slice(1), c));
|
|
528
|
+
}
|
|
529
|
+
async function renderList() {
|
|
530
|
+
if (!isOpen)
|
|
531
|
+
return;
|
|
532
|
+
const all = await inbox.query({ limit: 200 });
|
|
533
|
+
if (!isOpen)
|
|
534
|
+
return;
|
|
535
|
+
// preserve keyboard focus across a re-render (a sync/state change rebuilds the rows).
|
|
536
|
+
const keepId = root.activeElement?.closest?.('.row')?.dataset.id;
|
|
537
|
+
const cats = [...new Set(all.messages.map((m) => m.category))].sort();
|
|
538
|
+
renderTabs(cats);
|
|
539
|
+
const matching = activeCat ? all.messages.filter((m) => m.category === activeCat) : all.messages;
|
|
540
|
+
/**
|
|
541
|
+
* A dropdown shows the newest few, not everything — that is what keeps it a popover.
|
|
542
|
+
*
|
|
543
|
+
* ⚠️ Only capped for `dropdown`; a drawer scrolls the full list exactly as before. And when the
|
|
544
|
+
* cap actually hides something, the "View all" footer is the escape — which is why a host that
|
|
545
|
+
* sets `maxItems` without `onViewAll` is silently truncating. Flagged rather than silently
|
|
546
|
+
* accepted: the live region reports the real total, so nothing claims to be showing all of it.
|
|
547
|
+
*/
|
|
548
|
+
const cap = layout === 'dropdown' ? Math.max(1, opts.maxItems ?? 5) : Infinity;
|
|
549
|
+
const shown = matching.length > cap ? matching.slice(0, cap) : matching;
|
|
550
|
+
bodyEl.textContent = '';
|
|
551
|
+
if (!shown.length) {
|
|
552
|
+
bodyEl.appendChild(emptyEl());
|
|
553
|
+
live.textContent = L.emptyAnnounce;
|
|
554
|
+
if (pendingFocus) {
|
|
555
|
+
pendingFocus = false;
|
|
556
|
+
x.focus();
|
|
557
|
+
}
|
|
558
|
+
return;
|
|
559
|
+
}
|
|
560
|
+
const list = el('div', 'list');
|
|
561
|
+
list.setAttribute('role', 'list');
|
|
562
|
+
for (const m of shown)
|
|
563
|
+
list.appendChild(buildRow(m));
|
|
564
|
+
bodyEl.appendChild(list);
|
|
565
|
+
// Announce the REAL total, not the truncated count — a screen-reader user must not be told there
|
|
566
|
+
// are 5 notifications when there are 30 and the rest are behind "View all".
|
|
567
|
+
live.textContent = `${matching.length} notification${matching.length === 1 ? '' : 's'}`;
|
|
568
|
+
if (pendingFocus) {
|
|
569
|
+
pendingFocus = false;
|
|
570
|
+
(bodyEl.querySelector('.row') ?? x).focus();
|
|
571
|
+
}
|
|
572
|
+
else if (keepId) {
|
|
573
|
+
bodyEl.querySelector(`.row[data-id="${keepId}"]`)?.focus();
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
let pending = false;
|
|
577
|
+
function scheduleRender() {
|
|
578
|
+
if (pending)
|
|
579
|
+
return;
|
|
580
|
+
pending = true;
|
|
581
|
+
queueMicrotask(() => { pending = false; void renderList(); });
|
|
582
|
+
}
|
|
583
|
+
return {
|
|
584
|
+
open,
|
|
585
|
+
close,
|
|
586
|
+
destroy() {
|
|
587
|
+
unsub();
|
|
588
|
+
panel.removeEventListener('keydown', onPanelKey);
|
|
589
|
+
bodyEl.removeEventListener('keydown', onListKey);
|
|
590
|
+
external?.removeEventListener('click', onTriggerClick);
|
|
591
|
+
host.remove();
|
|
592
|
+
},
|
|
593
|
+
};
|
|
594
|
+
}
|
|
595
|
+
function resolveTrigger(t) {
|
|
596
|
+
if (!t)
|
|
597
|
+
return null;
|
|
598
|
+
if (typeof t === 'string') {
|
|
599
|
+
try {
|
|
600
|
+
return document.querySelector(t);
|
|
601
|
+
}
|
|
602
|
+
catch {
|
|
603
|
+
return null;
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
return t;
|
|
607
|
+
}
|
|
608
|
+
//# sourceMappingURL=InboxWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InboxWidget.js","sourceRoot":"","sources":["../../../../src/features/inbox/widget/InboxWidget.ts"],"names":[],"mappings":"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"}
|