@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.
Files changed (1030) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/dist/bootstrap/FeatureRegistry.d.ts +44 -0
  4. package/dist/bootstrap/FeatureRegistry.d.ts.map +1 -0
  5. package/dist/bootstrap/FeatureRegistry.js +85 -0
  6. package/dist/bootstrap/FeatureRegistry.js.map +1 -0
  7. package/dist/bootstrap/SDKBootstrapper.d.ts +37 -0
  8. package/dist/bootstrap/SDKBootstrapper.d.ts.map +1 -0
  9. package/dist/bootstrap/SDKBootstrapper.js +248 -0
  10. package/dist/bootstrap/SDKBootstrapper.js.map +1 -0
  11. package/dist/browser.d.ts +51 -0
  12. package/dist/browser.d.ts.map +1 -0
  13. package/dist/browser.js +81 -0
  14. package/dist/browser.js.map +1 -0
  15. package/dist/config/schema.d.ts +108 -0
  16. package/dist/config/schema.d.ts.map +1 -0
  17. package/dist/config/schema.js +95 -0
  18. package/dist/config/schema.js.map +1 -0
  19. package/dist/core/breadcrumbs.d.ts +56 -0
  20. package/dist/core/breadcrumbs.d.ts.map +1 -0
  21. package/dist/core/breadcrumbs.js +141 -0
  22. package/dist/core/breadcrumbs.js.map +1 -0
  23. package/dist/core/capabilities.d.ts +38 -0
  24. package/dist/core/capabilities.d.ts.map +1 -0
  25. package/dist/core/capabilities.js +78 -0
  26. package/dist/core/capabilities.js.map +1 -0
  27. package/dist/core/consent.d.ts +17 -0
  28. package/dist/core/consent.d.ts.map +1 -0
  29. package/dist/core/consent.js +38 -0
  30. package/dist/core/consent.js.map +1 -0
  31. package/dist/core/csp.d.ts +31 -0
  32. package/dist/core/csp.d.ts.map +1 -0
  33. package/dist/core/csp.js +74 -0
  34. package/dist/core/csp.js.map +1 -0
  35. package/dist/core/evalContext.d.ts +7 -0
  36. package/dist/core/evalContext.d.ts.map +1 -0
  37. package/dist/core/evalContext.js +22 -0
  38. package/dist/core/evalContext.js.map +1 -0
  39. package/dist/core/ids.d.ts +6 -0
  40. package/dist/core/ids.d.ts.map +1 -0
  41. package/dist/core/ids.js +35 -0
  42. package/dist/core/ids.js.map +1 -0
  43. package/dist/core/index.d.ts +15 -0
  44. package/dist/core/index.d.ts.map +1 -0
  45. package/dist/core/index.js +15 -0
  46. package/dist/core/index.js.map +1 -0
  47. package/dist/core/lifecycle.d.ts +4 -0
  48. package/dist/core/lifecycle.d.ts.map +1 -0
  49. package/dist/core/lifecycle.js +24 -0
  50. package/dist/core/lifecycle.js.map +1 -0
  51. package/dist/core/logger.d.ts +12 -0
  52. package/dist/core/logger.d.ts.map +1 -0
  53. package/dist/core/logger.js +14 -0
  54. package/dist/core/logger.js.map +1 -0
  55. package/dist/core/observe.d.ts +3 -0
  56. package/dist/core/observe.d.ts.map +1 -0
  57. package/dist/core/observe.js +22 -0
  58. package/dist/core/observe.js.map +1 -0
  59. package/dist/core/pageContext.d.ts +13 -0
  60. package/dist/core/pageContext.d.ts.map +1 -0
  61. package/dist/core/pageContext.js +73 -0
  62. package/dist/core/pageContext.js.map +1 -0
  63. package/dist/core/prune.d.ts +7 -0
  64. package/dist/core/prune.d.ts.map +1 -0
  65. package/dist/core/prune.js +31 -0
  66. package/dist/core/prune.js.map +1 -0
  67. package/dist/core/redact.d.ts +15 -0
  68. package/dist/core/redact.d.ts.map +1 -0
  69. package/dist/core/redact.js +50 -0
  70. package/dist/core/redact.js.map +1 -0
  71. package/dist/core/replayCoord.d.ts +22 -0
  72. package/dist/core/replayCoord.d.ts.map +1 -0
  73. package/dist/core/replayCoord.js +20 -0
  74. package/dist/core/replayCoord.js.map +1 -0
  75. package/dist/core/retry.d.ts +25 -0
  76. package/dist/core/retry.d.ts.map +1 -0
  77. package/dist/core/retry.js +44 -0
  78. package/dist/core/retry.js.map +1 -0
  79. package/dist/core/runtime.d.ts +28 -0
  80. package/dist/core/runtime.d.ts.map +1 -0
  81. package/dist/core/runtime.js +67 -0
  82. package/dist/core/runtime.js.map +1 -0
  83. package/dist/core/scrollDepth.d.ts +48 -0
  84. package/dist/core/scrollDepth.d.ts.map +1 -0
  85. package/dist/core/scrollDepth.js +63 -0
  86. package/dist/core/scrollDepth.js.map +1 -0
  87. package/dist/debug/index.d.ts +6 -0
  88. package/dist/debug/index.d.ts.map +1 -0
  89. package/dist/debug/index.js +2 -0
  90. package/dist/debug/index.js.map +1 -0
  91. package/dist/features/analytics/AnalyticsFeature.d.ts +122 -0
  92. package/dist/features/analytics/AnalyticsFeature.d.ts.map +1 -0
  93. package/dist/features/analytics/AnalyticsFeature.js +757 -0
  94. package/dist/features/analytics/AnalyticsFeature.js.map +1 -0
  95. package/dist/features/analytics/autocapture.d.ts +13 -0
  96. package/dist/features/analytics/autocapture.d.ts.map +1 -0
  97. package/dist/features/analytics/autocapture.js +398 -0
  98. package/dist/features/analytics/autocapture.js.map +1 -0
  99. package/dist/features/analytics/governance.d.ts +15 -0
  100. package/dist/features/analytics/governance.d.ts.map +1 -0
  101. package/dist/features/analytics/governance.js +30 -0
  102. package/dist/features/analytics/governance.js.map +1 -0
  103. package/dist/features/analytics/revenue.d.ts +38 -0
  104. package/dist/features/analytics/revenue.d.ts.map +1 -0
  105. package/dist/features/analytics/revenue.js +26 -0
  106. package/dist/features/analytics/revenue.js.map +1 -0
  107. package/dist/features/analytics/sampler.d.ts +2 -0
  108. package/dist/features/analytics/sampler.d.ts.map +1 -0
  109. package/dist/features/analytics/sampler.js +24 -0
  110. package/dist/features/analytics/sampler.js.map +1 -0
  111. package/dist/features/analytics/subscription.d.ts +25 -0
  112. package/dist/features/analytics/subscription.d.ts.map +1 -0
  113. package/dist/features/analytics/subscription.js +51 -0
  114. package/dist/features/analytics/subscription.js.map +1 -0
  115. package/dist/features/attention/index.d.ts +29 -0
  116. package/dist/features/attention/index.d.ts.map +1 -0
  117. package/dist/features/attention/index.js +128 -0
  118. package/dist/features/attention/index.js.map +1 -0
  119. package/dist/features/bugreport/BugReportFeature.d.ts +36 -0
  120. package/dist/features/bugreport/BugReportFeature.d.ts.map +1 -0
  121. package/dist/features/bugreport/BugReportFeature.js +55 -0
  122. package/dist/features/bugreport/BugReportFeature.js.map +1 -0
  123. package/dist/features/bugreport/collect.d.ts +21 -0
  124. package/dist/features/bugreport/collect.d.ts.map +1 -0
  125. package/dist/features/bugreport/collect.js +27 -0
  126. package/dist/features/bugreport/collect.js.map +1 -0
  127. package/dist/features/bugreport/widget.d.ts +21 -0
  128. package/dist/features/bugreport/widget.d.ts.map +1 -0
  129. package/dist/features/bugreport/widget.js +111 -0
  130. package/dist/features/bugreport/widget.js.map +1 -0
  131. package/dist/features/coach/CoachmarkFeature.d.ts +78 -0
  132. package/dist/features/coach/CoachmarkFeature.d.ts.map +1 -0
  133. package/dist/features/coach/CoachmarkFeature.js +161 -0
  134. package/dist/features/coach/CoachmarkFeature.js.map +1 -0
  135. package/dist/features/coach/anchor.d.ts +32 -0
  136. package/dist/features/coach/anchor.d.ts.map +1 -0
  137. package/dist/features/coach/anchor.js +128 -0
  138. package/dist/features/coach/anchor.js.map +1 -0
  139. package/dist/features/coach/observers.d.ts +17 -0
  140. package/dist/features/coach/observers.d.ts.map +1 -0
  141. package/dist/features/coach/observers.js +49 -0
  142. package/dist/features/coach/observers.js.map +1 -0
  143. package/dist/features/coach/overlay.d.ts +15 -0
  144. package/dist/features/coach/overlay.d.ts.map +1 -0
  145. package/dist/features/coach/overlay.js +183 -0
  146. package/dist/features/coach/overlay.js.map +1 -0
  147. package/dist/features/coach/position.d.ts +9 -0
  148. package/dist/features/coach/position.d.ts.map +1 -0
  149. package/dist/features/coach/position.js +83 -0
  150. package/dist/features/coach/position.js.map +1 -0
  151. package/dist/features/coach/predicate.d.ts +10 -0
  152. package/dist/features/coach/predicate.d.ts.map +1 -0
  153. package/dist/features/coach/predicate.js +36 -0
  154. package/dist/features/coach/predicate.js.map +1 -0
  155. package/dist/features/coach/tour.d.ts +55 -0
  156. package/dist/features/coach/tour.d.ts.map +1 -0
  157. package/dist/features/coach/tour.js +181 -0
  158. package/dist/features/coach/tour.js.map +1 -0
  159. package/dist/features/coach/types.d.ts +161 -0
  160. package/dist/features/coach/types.d.ts.map +1 -0
  161. package/dist/features/coach/types.js +2 -0
  162. package/dist/features/coach/types.js.map +1 -0
  163. package/dist/features/coach/wait.d.ts +34 -0
  164. package/dist/features/coach/wait.d.ts.map +1 -0
  165. package/dist/features/coach/wait.js +107 -0
  166. package/dist/features/coach/wait.js.map +1 -0
  167. package/dist/features/config/ConfigFeature.d.ts +117 -0
  168. package/dist/features/config/ConfigFeature.d.ts.map +1 -0
  169. package/dist/features/config/ConfigFeature.js +437 -0
  170. package/dist/features/config/ConfigFeature.js.map +1 -0
  171. package/dist/features/config/bucketing.d.ts +20 -0
  172. package/dist/features/config/bucketing.d.ts.map +1 -0
  173. package/dist/features/config/bucketing.js +37 -0
  174. package/dist/features/config/bucketing.js.map +1 -0
  175. package/dist/features/config/configStore.d.ts +11 -0
  176. package/dist/features/config/configStore.d.ts.map +1 -0
  177. package/dist/features/config/configStore.js +66 -0
  178. package/dist/features/config/configStore.js.map +1 -0
  179. package/dist/features/config/targeting.d.ts +11 -0
  180. package/dist/features/config/targeting.d.ts.map +1 -0
  181. package/dist/features/config/targeting.js +57 -0
  182. package/dist/features/config/targeting.js.map +1 -0
  183. package/dist/features/config/types.d.ts +100 -0
  184. package/dist/features/config/types.d.ts.map +1 -0
  185. package/dist/features/config/types.js +9 -0
  186. package/dist/features/config/types.js.map +1 -0
  187. package/dist/features/console/ConsoleFeature.d.ts +31 -0
  188. package/dist/features/console/ConsoleFeature.d.ts.map +1 -0
  189. package/dist/features/console/ConsoleFeature.js +98 -0
  190. package/dist/features/console/ConsoleFeature.js.map +1 -0
  191. package/dist/features/console/normalize.d.ts +18 -0
  192. package/dist/features/console/normalize.d.ts.map +1 -0
  193. package/dist/features/console/normalize.js +64 -0
  194. package/dist/features/console/normalize.js.map +1 -0
  195. package/dist/features/console/serialize.d.ts +24 -0
  196. package/dist/features/console/serialize.d.ts.map +1 -0
  197. package/dist/features/console/serialize.js +99 -0
  198. package/dist/features/console/serialize.js.map +1 -0
  199. package/dist/features/console/throttle.d.ts +27 -0
  200. package/dist/features/console/throttle.d.ts.map +1 -0
  201. package/dist/features/console/throttle.js +37 -0
  202. package/dist/features/console/throttle.js.map +1 -0
  203. package/dist/features/crash/CrashFeature.d.ts +46 -0
  204. package/dist/features/crash/CrashFeature.d.ts.map +1 -0
  205. package/dist/features/crash/CrashFeature.js +173 -0
  206. package/dist/features/crash/CrashFeature.js.map +1 -0
  207. package/dist/features/crash/liveness.d.ts +30 -0
  208. package/dist/features/crash/liveness.d.ts.map +1 -0
  209. package/dist/features/crash/liveness.js +131 -0
  210. package/dist/features/crash/liveness.js.map +1 -0
  211. package/dist/features/engage/EngageFeature.d.ts +61 -0
  212. package/dist/features/engage/EngageFeature.d.ts.map +1 -0
  213. package/dist/features/engage/EngageFeature.js +221 -0
  214. package/dist/features/engage/EngageFeature.js.map +1 -0
  215. package/dist/features/engage/attachments.d.ts +24 -0
  216. package/dist/features/engage/attachments.d.ts.map +1 -0
  217. package/dist/features/engage/attachments.js +209 -0
  218. package/dist/features/engage/attachments.js.map +1 -0
  219. package/dist/features/engage/gameLogic.d.ts +60 -0
  220. package/dist/features/engage/gameLogic.d.ts.map +1 -0
  221. package/dist/features/engage/gameLogic.js +213 -0
  222. package/dist/features/engage/gameLogic.js.map +1 -0
  223. package/dist/features/engage/gameResolver.d.ts +35 -0
  224. package/dist/features/engage/gameResolver.d.ts.map +1 -0
  225. package/dist/features/engage/gameResolver.js +81 -0
  226. package/dist/features/engage/gameResolver.js.map +1 -0
  227. package/dist/features/engage/gameTypes.d.ts +76 -0
  228. package/dist/features/engage/gameTypes.d.ts.map +1 -0
  229. package/dist/features/engage/gameTypes.js +17 -0
  230. package/dist/features/engage/gameTypes.js.map +1 -0
  231. package/dist/features/engage/inappSlots.d.ts +39 -0
  232. package/dist/features/engage/inappSlots.d.ts.map +1 -0
  233. package/dist/features/engage/inappSlots.js +50 -0
  234. package/dist/features/engage/inappSlots.js.map +1 -0
  235. package/dist/features/engage/normalize.d.ts +11 -0
  236. package/dist/features/engage/normalize.d.ts.map +1 -0
  237. package/dist/features/engage/normalize.js +203 -0
  238. package/dist/features/engage/normalize.js.map +1 -0
  239. package/dist/features/engage/richInApp.d.ts +64 -0
  240. package/dist/features/engage/richInApp.d.ts.map +1 -0
  241. package/dist/features/engage/richInApp.js +1082 -0
  242. package/dist/features/engage/richInApp.js.map +1 -0
  243. package/dist/features/engage/runtime.d.ts +78 -0
  244. package/dist/features/engage/runtime.d.ts.map +1 -0
  245. package/dist/features/engage/runtime.js +349 -0
  246. package/dist/features/engage/runtime.js.map +1 -0
  247. package/dist/features/engage/shakeDetector.d.ts +6 -0
  248. package/dist/features/engage/shakeDetector.d.ts.map +1 -0
  249. package/dist/features/engage/shakeDetector.js +105 -0
  250. package/dist/features/engage/shakeDetector.js.map +1 -0
  251. package/dist/features/engage/theme.d.ts +129 -0
  252. package/dist/features/engage/theme.d.ts.map +1 -0
  253. package/dist/features/engage/theme.js +270 -0
  254. package/dist/features/engage/theme.js.map +1 -0
  255. package/dist/features/engage/throttle.d.ts +31 -0
  256. package/dist/features/engage/throttle.d.ts.map +1 -0
  257. package/dist/features/engage/throttle.js +130 -0
  258. package/dist/features/engage/throttle.js.map +1 -0
  259. package/dist/features/engage/transport.d.ts +62 -0
  260. package/dist/features/engage/transport.d.ts.map +1 -0
  261. package/dist/features/engage/transport.js +185 -0
  262. package/dist/features/engage/transport.js.map +1 -0
  263. package/dist/features/engage/triggerEngine.d.ts +39 -0
  264. package/dist/features/engage/triggerEngine.d.ts.map +1 -0
  265. package/dist/features/engage/triggerEngine.js +105 -0
  266. package/dist/features/engage/triggerEngine.js.map +1 -0
  267. package/dist/features/engage/types.d.ts +265 -0
  268. package/dist/features/engage/types.d.ts.map +1 -0
  269. package/dist/features/engage/types.js +3 -0
  270. package/dist/features/engage/types.js.map +1 -0
  271. package/dist/features/engage/widget/InAppWidget.d.ts +10 -0
  272. package/dist/features/engage/widget/InAppWidget.d.ts.map +1 -0
  273. package/dist/features/engage/widget/InAppWidget.js +136 -0
  274. package/dist/features/engage/widget/InAppWidget.js.map +1 -0
  275. package/dist/features/engage/widget/SurveyWidget.d.ts +11 -0
  276. package/dist/features/engage/widget/SurveyWidget.d.ts.map +1 -0
  277. package/dist/features/engage/widget/SurveyWidget.js +546 -0
  278. package/dist/features/engage/widget/SurveyWidget.js.map +1 -0
  279. package/dist/features/errors/ErrorsFeature.d.ts +62 -0
  280. package/dist/features/errors/ErrorsFeature.d.ts.map +1 -0
  281. package/dist/features/errors/ErrorsFeature.js +209 -0
  282. package/dist/features/errors/ErrorsFeature.js.map +1 -0
  283. package/dist/features/errors/causes.d.ts +15 -0
  284. package/dist/features/errors/causes.d.ts.map +1 -0
  285. package/dist/features/errors/causes.js +29 -0
  286. package/dist/features/errors/causes.js.map +1 -0
  287. package/dist/features/errors/dedup.d.ts +28 -0
  288. package/dist/features/errors/dedup.d.ts.map +1 -0
  289. package/dist/features/errors/dedup.js +42 -0
  290. package/dist/features/errors/dedup.js.map +1 -0
  291. package/dist/features/errors/group/fingerprint.d.ts +13 -0
  292. package/dist/features/errors/group/fingerprint.d.ts.map +1 -0
  293. package/dist/features/errors/group/fingerprint.js +45 -0
  294. package/dist/features/errors/group/fingerprint.js.map +1 -0
  295. package/dist/features/errors/lazy.d.ts +8 -0
  296. package/dist/features/errors/lazy.d.ts.map +1 -0
  297. package/dist/features/errors/lazy.js +8 -0
  298. package/dist/features/errors/lazy.js.map +1 -0
  299. package/dist/features/errors/normalize.d.ts +26 -0
  300. package/dist/features/errors/normalize.d.ts.map +1 -0
  301. package/dist/features/errors/normalize.js +58 -0
  302. package/dist/features/errors/normalize.js.map +1 -0
  303. package/dist/features/errors/parse/stacktrace.d.ts +13 -0
  304. package/dist/features/errors/parse/stacktrace.d.ts.map +1 -0
  305. package/dist/features/errors/parse/stacktrace.js +85 -0
  306. package/dist/features/errors/parse/stacktrace.js.map +1 -0
  307. package/dist/features/errors/redact.d.ts +7 -0
  308. package/dist/features/errors/redact.d.ts.map +1 -0
  309. package/dist/features/errors/redact.js +39 -0
  310. package/dist/features/errors/redact.js.map +1 -0
  311. package/dist/features/errors/sampling.d.ts +2 -0
  312. package/dist/features/errors/sampling.d.ts.map +1 -0
  313. package/dist/features/errors/sampling.js +24 -0
  314. package/dist/features/errors/sampling.js.map +1 -0
  315. package/dist/features/errors/scope.d.ts +26 -0
  316. package/dist/features/errors/scope.d.ts.map +1 -0
  317. package/dist/features/errors/scope.js +30 -0
  318. package/dist/features/errors/scope.js.map +1 -0
  319. package/dist/features/exit-intent/ExitIntentFeature.d.ts +16 -0
  320. package/dist/features/exit-intent/ExitIntentFeature.d.ts.map +1 -0
  321. package/dist/features/exit-intent/ExitIntentFeature.js +25 -0
  322. package/dist/features/exit-intent/ExitIntentFeature.js.map +1 -0
  323. package/dist/features/exit-intent/engine.d.ts +127 -0
  324. package/dist/features/exit-intent/engine.d.ts.map +1 -0
  325. package/dist/features/exit-intent/engine.js +227 -0
  326. package/dist/features/exit-intent/engine.js.map +1 -0
  327. package/dist/features/forms/index.d.ts +83 -0
  328. package/dist/features/forms/index.d.ts.map +1 -0
  329. package/dist/features/forms/index.js +405 -0
  330. package/dist/features/forms/index.js.map +1 -0
  331. package/dist/features/inapp/InApp2Feature.d.ts +24 -0
  332. package/dist/features/inapp/InApp2Feature.d.ts.map +1 -0
  333. package/dist/features/inapp/InApp2Feature.js +43 -0
  334. package/dist/features/inapp/InApp2Feature.js.map +1 -0
  335. package/dist/features/inapp/a11y/focus.d.ts +24 -0
  336. package/dist/features/inapp/a11y/focus.d.ts.map +1 -0
  337. package/dist/features/inapp/a11y/focus.js +112 -0
  338. package/dist/features/inapp/a11y/focus.js.map +1 -0
  339. package/dist/features/inapp/anchor/controller.d.ts +64 -0
  340. package/dist/features/inapp/anchor/controller.d.ts.map +1 -0
  341. package/dist/features/inapp/anchor/controller.js +155 -0
  342. package/dist/features/inapp/anchor/controller.js.map +1 -0
  343. package/dist/features/inapp/api.d.ts +28 -0
  344. package/dist/features/inapp/api.d.ts.map +1 -0
  345. package/dist/features/inapp/api.js +41 -0
  346. package/dist/features/inapp/api.js.map +1 -0
  347. package/dist/features/inapp/blocks/blocks.d.ts +65 -0
  348. package/dist/features/inapp/blocks/blocks.d.ts.map +1 -0
  349. package/dist/features/inapp/blocks/blocks.js +196 -0
  350. package/dist/features/inapp/blocks/blocks.js.map +1 -0
  351. package/dist/features/inapp/blocks/feedback.d.ts +13 -0
  352. package/dist/features/inapp/blocks/feedback.d.ts.map +1 -0
  353. package/dist/features/inapp/blocks/feedback.js +154 -0
  354. package/dist/features/inapp/blocks/feedback.js.map +1 -0
  355. package/dist/features/inapp/blocks/heavy/carousel.d.ts +8 -0
  356. package/dist/features/inapp/blocks/heavy/carousel.d.ts.map +1 -0
  357. package/dist/features/inapp/blocks/heavy/carousel.js +67 -0
  358. package/dist/features/inapp/blocks/heavy/carousel.js.map +1 -0
  359. package/dist/features/inapp/blocks/heavy/chart.d.ts +9 -0
  360. package/dist/features/inapp/blocks/heavy/chart.d.ts.map +1 -0
  361. package/dist/features/inapp/blocks/heavy/chart.js +83 -0
  362. package/dist/features/inapp/blocks/heavy/chart.js.map +1 -0
  363. package/dist/features/inapp/blocks/heavy/code.d.ts +8 -0
  364. package/dist/features/inapp/blocks/heavy/code.d.ts.map +1 -0
  365. package/dist/features/inapp/blocks/heavy/code.js +47 -0
  366. package/dist/features/inapp/blocks/heavy/code.js.map +1 -0
  367. package/dist/features/inapp/blocks/heavy/confetti.d.ts +9 -0
  368. package/dist/features/inapp/blocks/heavy/confetti.d.ts.map +1 -0
  369. package/dist/features/inapp/blocks/heavy/confetti.js +76 -0
  370. package/dist/features/inapp/blocks/heavy/confetti.js.map +1 -0
  371. package/dist/features/inapp/blocks/heavy/countdown.d.ts +9 -0
  372. package/dist/features/inapp/blocks/heavy/countdown.d.ts.map +1 -0
  373. package/dist/features/inapp/blocks/heavy/countdown.js +59 -0
  374. package/dist/features/inapp/blocks/heavy/countdown.js.map +1 -0
  375. package/dist/features/inapp/blocks/heavy/index.d.ts +11 -0
  376. package/dist/features/inapp/blocks/heavy/index.d.ts.map +1 -0
  377. package/dist/features/inapp/blocks/heavy/index.js +45 -0
  378. package/dist/features/inapp/blocks/heavy/index.js.map +1 -0
  379. package/dist/features/inapp/blocks/heavy/markdown.d.ts +9 -0
  380. package/dist/features/inapp/blocks/heavy/markdown.d.ts.map +1 -0
  381. package/dist/features/inapp/blocks/heavy/markdown.js +76 -0
  382. package/dist/features/inapp/blocks/heavy/markdown.js.map +1 -0
  383. package/dist/features/inapp/blocks/heavy/productgrid.d.ts +8 -0
  384. package/dist/features/inapp/blocks/heavy/productgrid.d.ts.map +1 -0
  385. package/dist/features/inapp/blocks/heavy/productgrid.js +46 -0
  386. package/dist/features/inapp/blocks/heavy/productgrid.js.map +1 -0
  387. package/dist/features/inapp/blocks/heavy/qr.d.ts +10 -0
  388. package/dist/features/inapp/blocks/heavy/qr.d.ts.map +1 -0
  389. package/dist/features/inapp/blocks/heavy/qr.js +69 -0
  390. package/dist/features/inapp/blocks/heavy/qr.js.map +1 -0
  391. package/dist/features/inapp/blocks/heavy/scratch.d.ts +8 -0
  392. package/dist/features/inapp/blocks/heavy/scratch.d.ts.map +1 -0
  393. package/dist/features/inapp/blocks/heavy/scratch.js +141 -0
  394. package/dist/features/inapp/blocks/heavy/scratch.js.map +1 -0
  395. package/dist/features/inapp/blocks/heavy/slot.d.ts +8 -0
  396. package/dist/features/inapp/blocks/heavy/slot.d.ts.map +1 -0
  397. package/dist/features/inapp/blocks/heavy/slot.js +96 -0
  398. package/dist/features/inapp/blocks/heavy/slot.js.map +1 -0
  399. package/dist/features/inapp/blocks/heavy/spinwheel.d.ts +9 -0
  400. package/dist/features/inapp/blocks/heavy/spinwheel.d.ts.map +1 -0
  401. package/dist/features/inapp/blocks/heavy/spinwheel.js +127 -0
  402. package/dist/features/inapp/blocks/heavy/spinwheel.js.map +1 -0
  403. package/dist/features/inapp/blocks/heavy/steps.d.ts +27 -0
  404. package/dist/features/inapp/blocks/heavy/steps.d.ts.map +1 -0
  405. package/dist/features/inapp/blocks/heavy/steps.js +127 -0
  406. package/dist/features/inapp/blocks/heavy/steps.js.map +1 -0
  407. package/dist/features/inapp/blocks/heavy/streak.d.ts +18 -0
  408. package/dist/features/inapp/blocks/heavy/streak.d.ts.map +1 -0
  409. package/dist/features/inapp/blocks/heavy/streak.js +52 -0
  410. package/dist/features/inapp/blocks/heavy/streak.js.map +1 -0
  411. package/dist/features/inapp/blocks/heavy/table.d.ts +7 -0
  412. package/dist/features/inapp/blocks/heavy/table.d.ts.map +1 -0
  413. package/dist/features/inapp/blocks/heavy/table.js +30 -0
  414. package/dist/features/inapp/blocks/heavy/table.js.map +1 -0
  415. package/dist/features/inapp/blocks/heavy/unavailable.d.ts +28 -0
  416. package/dist/features/inapp/blocks/heavy/unavailable.d.ts.map +1 -0
  417. package/dist/features/inapp/blocks/heavy/unavailable.js +33 -0
  418. package/dist/features/inapp/blocks/heavy/unavailable.js.map +1 -0
  419. package/dist/features/inapp/blocks/heavy/video.d.ts +7 -0
  420. package/dist/features/inapp/blocks/heavy/video.d.ts.map +1 -0
  421. package/dist/features/inapp/blocks/heavy/video.js +38 -0
  422. package/dist/features/inapp/blocks/heavy/video.js.map +1 -0
  423. package/dist/features/inapp/blocks/styles.d.ts +7 -0
  424. package/dist/features/inapp/blocks/styles.d.ts.map +1 -0
  425. package/dist/features/inapp/blocks/styles.js +198 -0
  426. package/dist/features/inapp/blocks/styles.js.map +1 -0
  427. package/dist/features/inapp/center/bridge.d.ts +12 -0
  428. package/dist/features/inapp/center/bridge.d.ts.map +1 -0
  429. package/dist/features/inapp/center/bridge.js +59 -0
  430. package/dist/features/inapp/center/bridge.js.map +1 -0
  431. package/dist/features/inapp/center/panel.d.ts +20 -0
  432. package/dist/features/inapp/center/panel.d.ts.map +1 -0
  433. package/dist/features/inapp/center/panel.js +194 -0
  434. package/dist/features/inapp/center/panel.js.map +1 -0
  435. package/dist/features/inapp/center/store.d.ts +50 -0
  436. package/dist/features/inapp/center/store.d.ts.map +1 -0
  437. package/dist/features/inapp/center/store.js +188 -0
  438. package/dist/features/inapp/center/store.js.map +1 -0
  439. package/dist/features/inapp/center/sync.d.ts +32 -0
  440. package/dist/features/inapp/center/sync.d.ts.map +1 -0
  441. package/dist/features/inapp/center/sync.js +60 -0
  442. package/dist/features/inapp/center/sync.js.map +1 -0
  443. package/dist/features/inapp/center/types.d.ts +46 -0
  444. package/dist/features/inapp/center/types.d.ts.map +1 -0
  445. package/dist/features/inapp/center/types.js +5 -0
  446. package/dist/features/inapp/center/types.js.map +1 -0
  447. package/dist/features/inapp/core/analytics.d.ts +35 -0
  448. package/dist/features/inapp/core/analytics.d.ts.map +1 -0
  449. package/dist/features/inapp/core/analytics.js +70 -0
  450. package/dist/features/inapp/core/analytics.js.map +1 -0
  451. package/dist/features/inapp/core/compat.d.ts +28 -0
  452. package/dist/features/inapp/core/compat.d.ts.map +1 -0
  453. package/dist/features/inapp/core/compat.js +104 -0
  454. package/dist/features/inapp/core/compat.js.map +1 -0
  455. package/dist/features/inapp/core/debugOverlay.d.ts +5 -0
  456. package/dist/features/inapp/core/debugOverlay.d.ts.map +1 -0
  457. package/dist/features/inapp/core/debugOverlay.js +79 -0
  458. package/dist/features/inapp/core/debugOverlay.js.map +1 -0
  459. package/dist/features/inapp/core/engine.d.ts +70 -0
  460. package/dist/features/inapp/core/engine.d.ts.map +1 -0
  461. package/dist/features/inapp/core/engine.js +248 -0
  462. package/dist/features/inapp/core/engine.js.map +1 -0
  463. package/dist/features/inapp/core/environment.d.ts +21 -0
  464. package/dist/features/inapp/core/environment.d.ts.map +1 -0
  465. package/dist/features/inapp/core/environment.js +57 -0
  466. package/dist/features/inapp/core/environment.js.map +1 -0
  467. package/dist/features/inapp/core/host.d.ts +53 -0
  468. package/dist/features/inapp/core/host.d.ts.map +1 -0
  469. package/dist/features/inapp/core/host.js +239 -0
  470. package/dist/features/inapp/core/host.js.map +1 -0
  471. package/dist/features/inapp/core/keyboard.d.ts +27 -0
  472. package/dist/features/inapp/core/keyboard.d.ts.map +1 -0
  473. package/dist/features/inapp/core/keyboard.js +69 -0
  474. package/dist/features/inapp/core/keyboard.js.map +1 -0
  475. package/dist/features/inapp/core/metrics.d.ts +73 -0
  476. package/dist/features/inapp/core/metrics.d.ts.map +1 -0
  477. package/dist/features/inapp/core/metrics.js +125 -0
  478. package/dist/features/inapp/core/metrics.js.map +1 -0
  479. package/dist/features/inapp/core/migration.d.ts +32 -0
  480. package/dist/features/inapp/core/migration.d.ts.map +1 -0
  481. package/dist/features/inapp/core/migration.js +28 -0
  482. package/dist/features/inapp/core/migration.js.map +1 -0
  483. package/dist/features/inapp/core/orchestrator.d.ts +77 -0
  484. package/dist/features/inapp/core/orchestrator.d.ts.map +1 -0
  485. package/dist/features/inapp/core/orchestrator.js +144 -0
  486. package/dist/features/inapp/core/orchestrator.js.map +1 -0
  487. package/dist/features/inapp/core/respect.d.ts +51 -0
  488. package/dist/features/inapp/core/respect.d.ts.map +1 -0
  489. package/dist/features/inapp/core/respect.js +78 -0
  490. package/dist/features/inapp/core/respect.js.map +1 -0
  491. package/dist/features/inapp/core/slots.d.ts +19 -0
  492. package/dist/features/inapp/core/slots.d.ts.map +1 -0
  493. package/dist/features/inapp/core/slots.js +53 -0
  494. package/dist/features/inapp/core/slots.js.map +1 -0
  495. package/dist/features/inapp/core/targeting.d.ts +58 -0
  496. package/dist/features/inapp/core/targeting.d.ts.map +1 -0
  497. package/dist/features/inapp/core/targeting.js +181 -0
  498. package/dist/features/inapp/core/targeting.js.map +1 -0
  499. package/dist/features/inapp/core/transport.d.ts +66 -0
  500. package/dist/features/inapp/core/transport.d.ts.map +1 -0
  501. package/dist/features/inapp/core/transport.js +154 -0
  502. package/dist/features/inapp/core/transport.js.map +1 -0
  503. package/dist/features/inapp/core/triggers.d.ts +94 -0
  504. package/dist/features/inapp/core/triggers.d.ts.map +1 -0
  505. package/dist/features/inapp/core/triggers.js +368 -0
  506. package/dist/features/inapp/core/triggers.js.map +1 -0
  507. package/dist/features/inapp/inappContract.web.d.ts +47 -0
  508. package/dist/features/inapp/inappContract.web.d.ts.map +1 -0
  509. package/dist/features/inapp/inappContract.web.js +219 -0
  510. package/dist/features/inapp/inappContract.web.js.map +1 -0
  511. package/dist/features/inapp/index.d.ts +23 -0
  512. package/dist/features/inapp/index.d.ts.map +1 -0
  513. package/dist/features/inapp/index.js +23 -0
  514. package/dist/features/inapp/index.js.map +1 -0
  515. package/dist/features/inapp/registry.canonical.hash.d.ts +7 -0
  516. package/dist/features/inapp/registry.canonical.hash.d.ts.map +1 -0
  517. package/dist/features/inapp/registry.canonical.hash.js +7 -0
  518. package/dist/features/inapp/registry.canonical.hash.js.map +1 -0
  519. package/dist/features/inapp/registry.web.canonical.d.ts +21 -0
  520. package/dist/features/inapp/registry.web.canonical.d.ts.map +1 -0
  521. package/dist/features/inapp/registry.web.canonical.js +136 -0
  522. package/dist/features/inapp/registry.web.canonical.js.map +1 -0
  523. package/dist/features/inapp/registry.web.catalog.d.ts +12 -0
  524. package/dist/features/inapp/registry.web.catalog.d.ts.map +1 -0
  525. package/dist/features/inapp/registry.web.catalog.js +208 -0
  526. package/dist/features/inapp/registry.web.catalog.js.map +1 -0
  527. package/dist/features/inapp/surfaces/banner.d.ts +7 -0
  528. package/dist/features/inapp/surfaces/banner.d.ts.map +1 -0
  529. package/dist/features/inapp/surfaces/banner.js +30 -0
  530. package/dist/features/inapp/surfaces/banner.js.map +1 -0
  531. package/dist/features/inapp/surfaces/checklist.d.ts +13 -0
  532. package/dist/features/inapp/surfaces/checklist.d.ts.map +1 -0
  533. package/dist/features/inapp/surfaces/checklist.js +127 -0
  534. package/dist/features/inapp/surfaces/checklist.js.map +1 -0
  535. package/dist/features/inapp/surfaces/coachmark.d.ts +10 -0
  536. package/dist/features/inapp/surfaces/coachmark.d.ts.map +1 -0
  537. package/dist/features/inapp/surfaces/coachmark.js +92 -0
  538. package/dist/features/inapp/surfaces/coachmark.js.map +1 -0
  539. package/dist/features/inapp/surfaces/hotspot.d.ts +8 -0
  540. package/dist/features/inapp/surfaces/hotspot.d.ts.map +1 -0
  541. package/dist/features/inapp/surfaces/hotspot.js +88 -0
  542. package/dist/features/inapp/surfaces/hotspot.js.map +1 -0
  543. package/dist/features/inapp/surfaces/inline.d.ts +13 -0
  544. package/dist/features/inapp/surfaces/inline.d.ts.map +1 -0
  545. package/dist/features/inapp/surfaces/inline.js +72 -0
  546. package/dist/features/inapp/surfaces/inline.js.map +1 -0
  547. package/dist/features/inapp/surfaces/launcher.d.ts +9 -0
  548. package/dist/features/inapp/surfaces/launcher.d.ts.map +1 -0
  549. package/dist/features/inapp/surfaces/launcher.js +54 -0
  550. package/dist/features/inapp/surfaces/launcher.js.map +1 -0
  551. package/dist/features/inapp/surfaces/modal.d.ts +8 -0
  552. package/dist/features/inapp/surfaces/modal.d.ts.map +1 -0
  553. package/dist/features/inapp/surfaces/modal.js +70 -0
  554. package/dist/features/inapp/surfaces/modal.js.map +1 -0
  555. package/dist/features/inapp/surfaces/mount.d.ts +19 -0
  556. package/dist/features/inapp/surfaces/mount.d.ts.map +1 -0
  557. package/dist/features/inapp/surfaces/mount.js +29 -0
  558. package/dist/features/inapp/surfaces/mount.js.map +1 -0
  559. package/dist/features/inapp/surfaces/palette.d.ts +9 -0
  560. package/dist/features/inapp/surfaces/palette.d.ts.map +1 -0
  561. package/dist/features/inapp/surfaces/palette.js +127 -0
  562. package/dist/features/inapp/surfaces/palette.js.map +1 -0
  563. package/dist/features/inapp/surfaces/panel.d.ts +14 -0
  564. package/dist/features/inapp/surfaces/panel.d.ts.map +1 -0
  565. package/dist/features/inapp/surfaces/panel.js +91 -0
  566. package/dist/features/inapp/surfaces/panel.js.map +1 -0
  567. package/dist/features/inapp/surfaces/popover.d.ts +10 -0
  568. package/dist/features/inapp/surfaces/popover.d.ts.map +1 -0
  569. package/dist/features/inapp/surfaces/popover.js +66 -0
  570. package/dist/features/inapp/surfaces/popover.js.map +1 -0
  571. package/dist/features/inapp/surfaces/render.d.ts +34 -0
  572. package/dist/features/inapp/surfaces/render.d.ts.map +1 -0
  573. package/dist/features/inapp/surfaces/render.js +52 -0
  574. package/dist/features/inapp/surfaces/render.js.map +1 -0
  575. package/dist/features/inapp/surfaces/slideover.d.ts +9 -0
  576. package/dist/features/inapp/surfaces/slideover.d.ts.map +1 -0
  577. package/dist/features/inapp/surfaces/slideover.js +144 -0
  578. package/dist/features/inapp/surfaces/slideover.js.map +1 -0
  579. package/dist/features/inapp/surfaces/styles.d.ts +7 -0
  580. package/dist/features/inapp/surfaces/styles.d.ts.map +1 -0
  581. package/dist/features/inapp/surfaces/styles.js +186 -0
  582. package/dist/features/inapp/surfaces/styles.js.map +1 -0
  583. package/dist/features/inapp/surfaces/surface.d.ts +69 -0
  584. package/dist/features/inapp/surfaces/surface.d.ts.map +1 -0
  585. package/dist/features/inapp/surfaces/surface.js +80 -0
  586. package/dist/features/inapp/surfaces/surface.js.map +1 -0
  587. package/dist/features/inapp/surfaces/takeover.d.ts +9 -0
  588. package/dist/features/inapp/surfaces/takeover.d.ts.map +1 -0
  589. package/dist/features/inapp/surfaces/takeover.js +60 -0
  590. package/dist/features/inapp/surfaces/takeover.js.map +1 -0
  591. package/dist/features/inapp/surfaces/toast.d.ts +7 -0
  592. package/dist/features/inapp/surfaces/toast.d.ts.map +1 -0
  593. package/dist/features/inapp/surfaces/toast.js +48 -0
  594. package/dist/features/inapp/surfaces/toast.js.map +1 -0
  595. package/dist/features/inapp/surfaces/toolbar.d.ts +8 -0
  596. package/dist/features/inapp/surfaces/toolbar.d.ts.map +1 -0
  597. package/dist/features/inapp/surfaces/toolbar.js +62 -0
  598. package/dist/features/inapp/surfaces/toolbar.js.map +1 -0
  599. package/dist/features/inapp/surfaces/tour.d.ts +14 -0
  600. package/dist/features/inapp/surfaces/tour.d.ts.map +1 -0
  601. package/dist/features/inapp/surfaces/tour.js +199 -0
  602. package/dist/features/inapp/surfaces/tour.js.map +1 -0
  603. package/dist/features/inapp/types.d.ts +163 -0
  604. package/dist/features/inapp/types.d.ts.map +1 -0
  605. package/dist/features/inapp/types.js +12 -0
  606. package/dist/features/inapp/types.js.map +1 -0
  607. package/dist/features/inbox/InboxFeature.d.ts +57 -0
  608. package/dist/features/inbox/InboxFeature.d.ts.map +1 -0
  609. package/dist/features/inbox/InboxFeature.js +225 -0
  610. package/dist/features/inbox/InboxFeature.js.map +1 -0
  611. package/dist/features/inbox/runtime.d.ts +67 -0
  612. package/dist/features/inbox/runtime.d.ts.map +1 -0
  613. package/dist/features/inbox/runtime.js +376 -0
  614. package/dist/features/inbox/runtime.js.map +1 -0
  615. package/dist/features/inbox/store.d.ts +37 -0
  616. package/dist/features/inbox/store.d.ts.map +1 -0
  617. package/dist/features/inbox/store.js +149 -0
  618. package/dist/features/inbox/store.js.map +1 -0
  619. package/dist/features/inbox/sync.d.ts +49 -0
  620. package/dist/features/inbox/sync.d.ts.map +1 -0
  621. package/dist/features/inbox/sync.js +131 -0
  622. package/dist/features/inbox/sync.js.map +1 -0
  623. package/dist/features/inbox/types.d.ts +275 -0
  624. package/dist/features/inbox/types.d.ts.map +1 -0
  625. package/dist/features/inbox/types.js +42 -0
  626. package/dist/features/inbox/types.js.map +1 -0
  627. package/dist/features/inbox/widget/InboxWidget.d.ts +16 -0
  628. package/dist/features/inbox/widget/InboxWidget.d.ts.map +1 -0
  629. package/dist/features/inbox/widget/InboxWidget.js +608 -0
  630. package/dist/features/inbox/widget/InboxWidget.js.map +1 -0
  631. package/dist/features/index.d.ts +21 -0
  632. package/dist/features/index.d.ts.map +1 -0
  633. package/dist/features/index.js +2 -0
  634. package/dist/features/index.js.map +1 -0
  635. package/dist/features/journey/InteractionTracker.d.ts +34 -0
  636. package/dist/features/journey/InteractionTracker.d.ts.map +1 -0
  637. package/dist/features/journey/InteractionTracker.js +125 -0
  638. package/dist/features/journey/InteractionTracker.js.map +1 -0
  639. package/dist/features/journey/JourneyFeature.d.ts +18 -0
  640. package/dist/features/journey/JourneyFeature.d.ts.map +1 -0
  641. package/dist/features/journey/JourneyFeature.js +57 -0
  642. package/dist/features/journey/JourneyFeature.js.map +1 -0
  643. package/dist/features/journey/NavigationTracker.d.ts +16 -0
  644. package/dist/features/journey/NavigationTracker.d.ts.map +1 -0
  645. package/dist/features/journey/NavigationTracker.js +92 -0
  646. package/dist/features/journey/NavigationTracker.js.map +1 -0
  647. package/dist/features/journey/friction.d.ts +29 -0
  648. package/dist/features/journey/friction.d.ts.map +1 -0
  649. package/dist/features/journey/friction.js +65 -0
  650. package/dist/features/journey/friction.js.map +1 -0
  651. package/dist/features/manifest.d.ts +20 -0
  652. package/dist/features/manifest.d.ts.map +1 -0
  653. package/dist/features/manifest.js +76 -0
  654. package/dist/features/manifest.js.map +1 -0
  655. package/dist/features/network/NetworkFeature.d.ts +56 -0
  656. package/dist/features/network/NetworkFeature.d.ts.map +1 -0
  657. package/dist/features/network/NetworkFeature.js +235 -0
  658. package/dist/features/network/NetworkFeature.js.map +1 -0
  659. package/dist/features/network/capture/body.d.ts +31 -0
  660. package/dist/features/network/capture/body.d.ts.map +1 -0
  661. package/dist/features/network/capture/body.js +81 -0
  662. package/dist/features/network/capture/body.js.map +1 -0
  663. package/dist/features/network/classify.d.ts +21 -0
  664. package/dist/features/network/classify.d.ts.map +1 -0
  665. package/dist/features/network/classify.js +50 -0
  666. package/dist/features/network/classify.js.map +1 -0
  667. package/dist/features/network/dedup.d.ts +36 -0
  668. package/dist/features/network/dedup.d.ts.map +1 -0
  669. package/dist/features/network/dedup.js +68 -0
  670. package/dist/features/network/dedup.js.map +1 -0
  671. package/dist/features/network/fetchInterceptor.d.ts +20 -0
  672. package/dist/features/network/fetchInterceptor.d.ts.map +1 -0
  673. package/dist/features/network/fetchInterceptor.js +158 -0
  674. package/dist/features/network/fetchInterceptor.js.map +1 -0
  675. package/dist/features/network/intercept/beacon.d.ts +14 -0
  676. package/dist/features/network/intercept/beacon.d.ts.map +1 -0
  677. package/dist/features/network/intercept/beacon.js +56 -0
  678. package/dist/features/network/intercept/beacon.js.map +1 -0
  679. package/dist/features/network/intercept/sse.d.ts +16 -0
  680. package/dist/features/network/intercept/sse.d.ts.map +1 -0
  681. package/dist/features/network/intercept/sse.js +74 -0
  682. package/dist/features/network/intercept/sse.js.map +1 -0
  683. package/dist/features/network/intercept/streams.d.ts +23 -0
  684. package/dist/features/network/intercept/streams.d.ts.map +1 -0
  685. package/dist/features/network/intercept/streams.js +25 -0
  686. package/dist/features/network/intercept/streams.js.map +1 -0
  687. package/dist/features/network/intercept/websocket.d.ts +14 -0
  688. package/dist/features/network/intercept/websocket.d.ts.map +1 -0
  689. package/dist/features/network/intercept/websocket.js +97 -0
  690. package/dist/features/network/intercept/websocket.js.map +1 -0
  691. package/dist/features/network/lazy.d.ts +23 -0
  692. package/dist/features/network/lazy.d.ts.map +1 -0
  693. package/dist/features/network/lazy.js +65 -0
  694. package/dist/features/network/lazy.js.map +1 -0
  695. package/dist/features/network/normalize.d.ts +9 -0
  696. package/dist/features/network/normalize.d.ts.map +1 -0
  697. package/dist/features/network/normalize.js +49 -0
  698. package/dist/features/network/normalize.js.map +1 -0
  699. package/dist/features/network/parse/graphql.d.ts +17 -0
  700. package/dist/features/network/parse/graphql.d.ts.map +1 -0
  701. package/dist/features/network/parse/graphql.js +106 -0
  702. package/dist/features/network/parse/graphql.js.map +1 -0
  703. package/dist/features/network/parse/url.d.ts +12 -0
  704. package/dist/features/network/parse/url.d.ts.map +1 -0
  705. package/dist/features/network/parse/url.js +52 -0
  706. package/dist/features/network/parse/url.js.map +1 -0
  707. package/dist/features/network/sampler.d.ts +21 -0
  708. package/dist/features/network/sampler.d.ts.map +1 -0
  709. package/dist/features/network/sampler.js +25 -0
  710. package/dist/features/network/sampler.js.map +1 -0
  711. package/dist/features/network/size.d.ts +21 -0
  712. package/dist/features/network/size.d.ts.map +1 -0
  713. package/dist/features/network/size.js +63 -0
  714. package/dist/features/network/size.js.map +1 -0
  715. package/dist/features/network/timing.d.ts +41 -0
  716. package/dist/features/network/timing.d.ts.map +1 -0
  717. package/dist/features/network/timing.js +134 -0
  718. package/dist/features/network/timing.js.map +1 -0
  719. package/dist/features/network/tracing.d.ts +18 -0
  720. package/dist/features/network/tracing.d.ts.map +1 -0
  721. package/dist/features/network/tracing.js +46 -0
  722. package/dist/features/network/tracing.js.map +1 -0
  723. package/dist/features/network/types.d.ts +75 -0
  724. package/dist/features/network/types.d.ts.map +1 -0
  725. package/dist/features/network/types.js +2 -0
  726. package/dist/features/network/types.js.map +1 -0
  727. package/dist/features/network/xhrInterceptor.d.ts +12 -0
  728. package/dist/features/network/xhrInterceptor.d.ts.map +1 -0
  729. package/dist/features/network/xhrInterceptor.js +108 -0
  730. package/dist/features/network/xhrInterceptor.js.map +1 -0
  731. package/dist/features/performance/PerformanceFeature.d.ts +76 -0
  732. package/dist/features/performance/PerformanceFeature.d.ts.map +1 -0
  733. package/dist/features/performance/PerformanceFeature.js +265 -0
  734. package/dist/features/performance/PerformanceFeature.js.map +1 -0
  735. package/dist/features/performance/jankTap.d.ts +23 -0
  736. package/dist/features/performance/jankTap.d.ts.map +1 -0
  737. package/dist/features/performance/jankTap.js +20 -0
  738. package/dist/features/performance/jankTap.js.map +1 -0
  739. package/dist/features/performance/longTasks.d.ts +14 -0
  740. package/dist/features/performance/longTasks.d.ts.map +1 -0
  741. package/dist/features/performance/longTasks.js +55 -0
  742. package/dist/features/performance/longTasks.js.map +1 -0
  743. package/dist/features/performance/normalize.d.ts +15 -0
  744. package/dist/features/performance/normalize.d.ts.map +1 -0
  745. package/dist/features/performance/normalize.js +30 -0
  746. package/dist/features/performance/normalize.js.map +1 -0
  747. package/dist/features/performance/resources.d.ts +19 -0
  748. package/dist/features/performance/resources.d.ts.map +1 -0
  749. package/dist/features/performance/resources.js +78 -0
  750. package/dist/features/performance/resources.js.map +1 -0
  751. package/dist/features/performance/sampler.d.ts +10 -0
  752. package/dist/features/performance/sampler.d.ts.map +1 -0
  753. package/dist/features/performance/sampler.js +23 -0
  754. package/dist/features/performance/sampler.js.map +1 -0
  755. package/dist/features/performance/spa.d.ts +2 -0
  756. package/dist/features/performance/spa.d.ts.map +1 -0
  757. package/dist/features/performance/spa.js +40 -0
  758. package/dist/features/performance/spa.js.map +1 -0
  759. package/dist/features/performance/throttle.d.ts +21 -0
  760. package/dist/features/performance/throttle.d.ts.map +1 -0
  761. package/dist/features/performance/throttle.js +26 -0
  762. package/dist/features/performance/throttle.js.map +1 -0
  763. package/dist/features/performance/trace/context.d.ts +17 -0
  764. package/dist/features/performance/trace/context.d.ts.map +1 -0
  765. package/dist/features/performance/trace/context.js +33 -0
  766. package/dist/features/performance/trace/context.js.map +1 -0
  767. package/dist/features/performance/trace/index.d.ts +7 -0
  768. package/dist/features/performance/trace/index.d.ts.map +1 -0
  769. package/dist/features/performance/trace/index.js +6 -0
  770. package/dist/features/performance/trace/index.js.map +1 -0
  771. package/dist/features/performance/trace/pageload.d.ts +3 -0
  772. package/dist/features/performance/trace/pageload.d.ts.map +1 -0
  773. package/dist/features/performance/trace/pageload.js +34 -0
  774. package/dist/features/performance/trace/pageload.js.map +1 -0
  775. package/dist/features/performance/trace/transaction.d.ts +61 -0
  776. package/dist/features/performance/trace/transaction.d.ts.map +1 -0
  777. package/dist/features/performance/trace/transaction.js +90 -0
  778. package/dist/features/performance/trace/transaction.js.map +1 -0
  779. package/dist/features/performance/trace/types.d.ts +23 -0
  780. package/dist/features/performance/trace/types.d.ts.map +1 -0
  781. package/dist/features/performance/trace/types.js +10 -0
  782. package/dist/features/performance/trace/types.js.map +1 -0
  783. package/dist/features/performance/traces.d.ts +36 -0
  784. package/dist/features/performance/traces.d.ts.map +1 -0
  785. package/dist/features/performance/traces.js +50 -0
  786. package/dist/features/performance/traces.js.map +1 -0
  787. package/dist/features/profiler/ProfilerFeature.d.ts +28 -0
  788. package/dist/features/profiler/ProfilerFeature.d.ts.map +1 -0
  789. package/dist/features/profiler/ProfilerFeature.js +82 -0
  790. package/dist/features/profiler/ProfilerFeature.js.map +1 -0
  791. package/dist/features/profiler/capture.d.ts +8 -0
  792. package/dist/features/profiler/capture.d.ts.map +1 -0
  793. package/dist/features/profiler/capture.js +21 -0
  794. package/dist/features/profiler/capture.js.map +1 -0
  795. package/dist/features/push/PushFeature.d.ts +120 -0
  796. package/dist/features/push/PushFeature.d.ts.map +1 -0
  797. package/dist/features/push/PushFeature.js +319 -0
  798. package/dist/features/push/PushFeature.js.map +1 -0
  799. package/dist/features/push/diagnostics.d.ts +55 -0
  800. package/dist/features/push/diagnostics.d.ts.map +1 -0
  801. package/dist/features/push/diagnostics.js +383 -0
  802. package/dist/features/push/diagnostics.js.map +1 -0
  803. package/dist/features/push/pushState.d.ts +58 -0
  804. package/dist/features/push/pushState.d.ts.map +1 -0
  805. package/dist/features/push/pushState.js +75 -0
  806. package/dist/features/push/pushState.js.map +1 -0
  807. package/dist/features/push/softAsk.d.ts +68 -0
  808. package/dist/features/push/softAsk.d.ts.map +1 -0
  809. package/dist/features/push/softAsk.js +141 -0
  810. package/dist/features/push/softAsk.js.map +1 -0
  811. package/dist/features/replay/ReplayFeature.d.ts +32 -0
  812. package/dist/features/replay/ReplayFeature.d.ts.map +1 -0
  813. package/dist/features/replay/ReplayFeature.js +132 -0
  814. package/dist/features/replay/ReplayFeature.js.map +1 -0
  815. package/dist/features/replay/engine/canvas.d.ts +45 -0
  816. package/dist/features/replay/engine/canvas.d.ts.map +1 -0
  817. package/dist/features/replay/engine/canvas.js +122 -0
  818. package/dist/features/replay/engine/canvas.js.map +1 -0
  819. package/dist/features/replay/engine/crossOrigin.d.ts +23 -0
  820. package/dist/features/replay/engine/crossOrigin.d.ts.map +1 -0
  821. package/dist/features/replay/engine/crossOrigin.js +108 -0
  822. package/dist/features/replay/engine/crossOrigin.js.map +1 -0
  823. package/dist/features/replay/engine/cssom.d.ts +31 -0
  824. package/dist/features/replay/engine/cssom.d.ts.map +1 -0
  825. package/dist/features/replay/engine/cssom.js +128 -0
  826. package/dist/features/replay/engine/cssom.js.map +1 -0
  827. package/dist/features/replay/engine/iframe.d.ts +65 -0
  828. package/dist/features/replay/engine/iframe.d.ts.map +1 -0
  829. package/dist/features/replay/engine/iframe.js +186 -0
  830. package/dist/features/replay/engine/iframe.js.map +1 -0
  831. package/dist/features/replay/engine/interactions.d.ts +142 -0
  832. package/dist/features/replay/engine/interactions.d.ts.map +1 -0
  833. package/dist/features/replay/engine/interactions.js +371 -0
  834. package/dist/features/replay/engine/interactions.js.map +1 -0
  835. package/dist/features/replay/engine/mutations.d.ts +49 -0
  836. package/dist/features/replay/engine/mutations.d.ts.map +1 -0
  837. package/dist/features/replay/engine/mutations.js +261 -0
  838. package/dist/features/replay/engine/mutations.js.map +1 -0
  839. package/dist/features/replay/engine/nodeRegistry.d.ts +23 -0
  840. package/dist/features/replay/engine/nodeRegistry.d.ts.map +1 -0
  841. package/dist/features/replay/engine/nodeRegistry.js +51 -0
  842. package/dist/features/replay/engine/nodeRegistry.js.map +1 -0
  843. package/dist/features/replay/engine/player.d.ts +11 -0
  844. package/dist/features/replay/engine/player.d.ts.map +1 -0
  845. package/dist/features/replay/engine/player.js +284 -0
  846. package/dist/features/replay/engine/player.js.map +1 -0
  847. package/dist/features/replay/engine/rebuild.d.ts +8 -0
  848. package/dist/features/replay/engine/rebuild.d.ts.map +1 -0
  849. package/dist/features/replay/engine/rebuild.js +46 -0
  850. package/dist/features/replay/engine/rebuild.js.map +1 -0
  851. package/dist/features/replay/engine/replayWorker.d.ts +33 -0
  852. package/dist/features/replay/engine/replayWorker.d.ts.map +1 -0
  853. package/dist/features/replay/engine/replayWorker.js +175 -0
  854. package/dist/features/replay/engine/replayWorker.js.map +1 -0
  855. package/dist/features/replay/engine/resources.d.ts +52 -0
  856. package/dist/features/replay/engine/resources.d.ts.map +1 -0
  857. package/dist/features/replay/engine/resources.js +132 -0
  858. package/dist/features/replay/engine/resources.js.map +1 -0
  859. package/dist/features/replay/engine/snapshot.d.ts +103 -0
  860. package/dist/features/replay/engine/snapshot.d.ts.map +1 -0
  861. package/dist/features/replay/engine/snapshot.js +409 -0
  862. package/dist/features/replay/engine/snapshot.js.map +1 -0
  863. package/dist/features/replay/engine/traverse.d.ts +19 -0
  864. package/dist/features/replay/engine/traverse.d.ts.map +1 -0
  865. package/dist/features/replay/engine/traverse.js +39 -0
  866. package/dist/features/replay/engine/traverse.js.map +1 -0
  867. package/dist/features/replay/engine/types.d.ts +137 -0
  868. package/dist/features/replay/engine/types.d.ts.map +1 -0
  869. package/dist/features/replay/engine/types.js +6 -0
  870. package/dist/features/replay/engine/types.js.map +1 -0
  871. package/dist/features/replay/engine/webglPatch.d.ts +26 -0
  872. package/dist/features/replay/engine/webglPatch.d.ts.map +1 -0
  873. package/dist/features/replay/engine/webglPatch.js +83 -0
  874. package/dist/features/replay/engine/webglPatch.js.map +1 -0
  875. package/dist/features/replay/lifecycle/adaptive.d.ts +38 -0
  876. package/dist/features/replay/lifecycle/adaptive.d.ts.map +1 -0
  877. package/dist/features/replay/lifecycle/adaptive.js +90 -0
  878. package/dist/features/replay/lifecycle/adaptive.js.map +1 -0
  879. package/dist/features/replay/lifecycle/cadence.d.ts +20 -0
  880. package/dist/features/replay/lifecycle/cadence.d.ts.map +1 -0
  881. package/dist/features/replay/lifecycle/cadence.js +62 -0
  882. package/dist/features/replay/lifecycle/cadence.js.map +1 -0
  883. package/dist/features/replay/lifecycle/deviceSignals.d.ts +35 -0
  884. package/dist/features/replay/lifecycle/deviceSignals.d.ts.map +1 -0
  885. package/dist/features/replay/lifecycle/deviceSignals.js +61 -0
  886. package/dist/features/replay/lifecycle/deviceSignals.js.map +1 -0
  887. package/dist/features/replay/lifecycle/pii.d.ts +14 -0
  888. package/dist/features/replay/lifecycle/pii.d.ts.map +1 -0
  889. package/dist/features/replay/lifecycle/pii.js +52 -0
  890. package/dist/features/replay/lifecycle/pii.js.map +1 -0
  891. package/dist/features/replay/lifecycle/recorder.d.ts +129 -0
  892. package/dist/features/replay/lifecycle/recorder.d.ts.map +1 -0
  893. package/dist/features/replay/lifecycle/recorder.js +509 -0
  894. package/dist/features/replay/lifecycle/recorder.js.map +1 -0
  895. package/dist/features/replay/lifecycle/sampling.d.ts +28 -0
  896. package/dist/features/replay/lifecycle/sampling.d.ts.map +1 -0
  897. package/dist/features/replay/lifecycle/sampling.js +31 -0
  898. package/dist/features/replay/lifecycle/sampling.js.map +1 -0
  899. package/dist/features/replay/lifecycle/segmentBuffer.d.ts +75 -0
  900. package/dist/features/replay/lifecycle/segmentBuffer.d.ts.map +1 -0
  901. package/dist/features/replay/lifecycle/segmentBuffer.js +130 -0
  902. package/dist/features/replay/lifecycle/segmentBuffer.js.map +1 -0
  903. package/dist/features/replay/lifecycle/viewContext.d.ts +7 -0
  904. package/dist/features/replay/lifecycle/viewContext.d.ts.map +1 -0
  905. package/dist/features/replay/lifecycle/viewContext.js +51 -0
  906. package/dist/features/replay/lifecycle/viewContext.js.map +1 -0
  907. package/dist/features/scroll/index.d.ts +31 -0
  908. package/dist/features/scroll/index.d.ts.map +1 -0
  909. package/dist/features/scroll/index.js +102 -0
  910. package/dist/features/scroll/index.js.map +1 -0
  911. package/dist/features/session/sessionManager.d.ts +25 -0
  912. package/dist/features/session/sessionManager.d.ts.map +1 -0
  913. package/dist/features/session/sessionManager.js +36 -0
  914. package/dist/features/session/sessionManager.js.map +1 -0
  915. package/dist/features/session/sessionStore.d.ts +106 -0
  916. package/dist/features/session/sessionStore.d.ts.map +1 -0
  917. package/dist/features/session/sessionStore.js +265 -0
  918. package/dist/features/session/sessionStore.js.map +1 -0
  919. package/dist/features/watchdog/WatchdogFeature.d.ts +23 -0
  920. package/dist/features/watchdog/WatchdogFeature.d.ts.map +1 -0
  921. package/dist/features/watchdog/WatchdogFeature.js +29 -0
  922. package/dist/features/watchdog/WatchdogFeature.js.map +1 -0
  923. package/dist/features/watchdog/collectors.d.ts +18 -0
  924. package/dist/features/watchdog/collectors.d.ts.map +1 -0
  925. package/dist/features/watchdog/collectors.js +107 -0
  926. package/dist/features/watchdog/collectors.js.map +1 -0
  927. package/dist/features/watchdog/config.d.ts +51 -0
  928. package/dist/features/watchdog/config.d.ts.map +1 -0
  929. package/dist/features/watchdog/config.js +28 -0
  930. package/dist/features/watchdog/config.js.map +1 -0
  931. package/dist/features/watchdog/engine.d.ts +22 -0
  932. package/dist/features/watchdog/engine.d.ts.map +1 -0
  933. package/dist/features/watchdog/engine.js +123 -0
  934. package/dist/features/watchdog/engine.js.map +1 -0
  935. package/dist/features/watchdog/incidents.d.ts +79 -0
  936. package/dist/features/watchdog/incidents.d.ts.map +1 -0
  937. package/dist/features/watchdog/incidents.js +204 -0
  938. package/dist/features/watchdog/incidents.js.map +1 -0
  939. package/dist/features/watchdog/rollup.d.ts +41 -0
  940. package/dist/features/watchdog/rollup.d.ts.map +1 -0
  941. package/dist/features/watchdog/rollup.js +76 -0
  942. package/dist/features/watchdog/rollup.js.map +1 -0
  943. package/dist/features/webVitals/WebVitalsFeature.d.ts +46 -0
  944. package/dist/features/webVitals/WebVitalsFeature.d.ts.map +1 -0
  945. package/dist/features/webVitals/WebVitalsFeature.js +252 -0
  946. package/dist/features/webVitals/WebVitalsFeature.js.map +1 -0
  947. package/dist/features/webVitals/attribution.d.ts +50 -0
  948. package/dist/features/webVitals/attribution.d.ts.map +1 -0
  949. package/dist/features/webVitals/attribution.js +186 -0
  950. package/dist/features/webVitals/attribution.js.map +1 -0
  951. package/dist/features/webVitals/observe.d.ts +6 -0
  952. package/dist/features/webVitals/observe.d.ts.map +1 -0
  953. package/dist/features/webVitals/observe.js +6 -0
  954. package/dist/features/webVitals/observe.js.map +1 -0
  955. package/dist/features/webVitals/vitals.d.ts +99 -0
  956. package/dist/features/webVitals/vitals.d.ts.map +1 -0
  957. package/dist/features/webVitals/vitals.js +166 -0
  958. package/dist/features/webVitals/vitals.js.map +1 -0
  959. package/dist/features/webperf/WebPerfFeature.d.ts +19 -0
  960. package/dist/features/webperf/WebPerfFeature.d.ts.map +1 -0
  961. package/dist/features/webperf/WebPerfFeature.js +48 -0
  962. package/dist/features/webperf/WebPerfFeature.js.map +1 -0
  963. package/dist/features/webperf/collectors.d.ts +3 -0
  964. package/dist/features/webperf/collectors.d.ts.map +1 -0
  965. package/dist/features/webperf/collectors.js +118 -0
  966. package/dist/features/webperf/collectors.js.map +1 -0
  967. package/dist/features/webperf/math.d.ts +12 -0
  968. package/dist/features/webperf/math.d.ts.map +1 -0
  969. package/dist/features/webperf/math.js +26 -0
  970. package/dist/features/webperf/math.js.map +1 -0
  971. package/dist/inapp.d.ts +6 -0
  972. package/dist/inapp.d.ts.map +1 -0
  973. package/dist/inapp.js +6 -0
  974. package/dist/inapp.js.map +1 -0
  975. package/dist/index.d.ts +31 -0
  976. package/dist/index.d.ts.map +1 -0
  977. package/dist/index.js +12 -0
  978. package/dist/index.js.map +1 -0
  979. package/dist/integrations/index.d.ts +7 -0
  980. package/dist/integrations/index.d.ts.map +1 -0
  981. package/dist/integrations/index.js +2 -0
  982. package/dist/integrations/index.js.map +1 -0
  983. package/dist/pipeline/index.d.ts +3 -0
  984. package/dist/pipeline/index.d.ts.map +1 -0
  985. package/dist/pipeline/index.js +3 -0
  986. package/dist/pipeline/index.js.map +1 -0
  987. package/dist/pipeline/pipeline.d.ts +84 -0
  988. package/dist/pipeline/pipeline.d.ts.map +1 -0
  989. package/dist/pipeline/pipeline.js +284 -0
  990. package/dist/pipeline/pipeline.js.map +1 -0
  991. package/dist/public/ScaleBunFacade.d.ts +382 -0
  992. package/dist/public/ScaleBunFacade.d.ts.map +1 -0
  993. package/dist/public/ScaleBunFacade.js +787 -0
  994. package/dist/public/ScaleBunFacade.js.map +1 -0
  995. package/dist/public/index.d.ts +5 -0
  996. package/dist/public/index.d.ts.map +1 -0
  997. package/dist/public/index.js +4 -0
  998. package/dist/public/index.js.map +1 -0
  999. package/dist/public/typedTracker.d.ts +91 -0
  1000. package/dist/public/typedTracker.d.ts.map +1 -0
  1001. package/dist/public/typedTracker.js +60 -0
  1002. package/dist/public/typedTracker.js.map +1 -0
  1003. package/dist/scalebun-push-sw.js +236 -0
  1004. package/dist/scalebun.min.js +635 -0
  1005. package/dist/scalebun.min.js.map +7 -0
  1006. package/dist/storage/idb.d.ts +16 -0
  1007. package/dist/storage/idb.d.ts.map +1 -0
  1008. package/dist/storage/idb.js +76 -0
  1009. package/dist/storage/idb.js.map +1 -0
  1010. package/dist/storage/index.d.ts +3 -0
  1011. package/dist/storage/index.d.ts.map +1 -0
  1012. package/dist/storage/index.js +3 -0
  1013. package/dist/storage/index.js.map +1 -0
  1014. package/dist/transport/gzip.d.ts +2 -0
  1015. package/dist/transport/gzip.d.ts.map +1 -0
  1016. package/dist/transport/gzip.js +20 -0
  1017. package/dist/transport/gzip.js.map +1 -0
  1018. package/dist/transport/httpClient.d.ts +60 -0
  1019. package/dist/transport/httpClient.d.ts.map +1 -0
  1020. package/dist/transport/httpClient.js +154 -0
  1021. package/dist/transport/httpClient.js.map +1 -0
  1022. package/dist/transport/index.d.ts +3 -0
  1023. package/dist/transport/index.d.ts.map +1 -0
  1024. package/dist/transport/index.js +3 -0
  1025. package/dist/transport/index.js.map +1 -0
  1026. package/dist/transport/sign.d.ts +25 -0
  1027. package/dist/transport/sign.d.ts.map +1 -0
  1028. package/dist/transport/sign.js +58 -0
  1029. package/dist/transport/sign.js.map +1 -0
  1030. 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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"}