@scalebun/web 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap/SDKBootstrapper.d.ts.map +1 -1
- package/dist/bootstrap/SDKBootstrapper.js +37 -1
- package/dist/bootstrap/SDKBootstrapper.js.map +1 -1
- package/dist/core/prune.d.ts +28 -4
- package/dist/core/prune.d.ts.map +1 -1
- package/dist/core/prune.js +92 -11
- package/dist/core/prune.js.map +1 -1
- package/dist/features/bugreport/BugReportFeature.d.ts +3 -2
- package/dist/features/bugreport/BugReportFeature.d.ts.map +1 -1
- package/dist/features/bugreport/BugReportFeature.js +2 -1
- package/dist/features/bugreport/BugReportFeature.js.map +1 -1
- package/dist/features/bugreport/widget.d.ts +21 -2
- package/dist/features/bugreport/widget.d.ts.map +1 -1
- package/dist/features/bugreport/widget.js +37 -4
- package/dist/features/bugreport/widget.js.map +1 -1
- package/dist/features/coach/overlay.d.ts.map +1 -1
- package/dist/features/coach/overlay.js +26 -5
- package/dist/features/coach/overlay.js.map +1 -1
- package/dist/features/engage/EngageFeature.d.ts +7 -1
- package/dist/features/engage/EngageFeature.d.ts.map +1 -1
- package/dist/features/engage/EngageFeature.js +32 -10
- package/dist/features/engage/EngageFeature.js.map +1 -1
- package/dist/features/engage/normalize.d.ts.map +1 -1
- package/dist/features/engage/normalize.js +7 -0
- package/dist/features/engage/normalize.js.map +1 -1
- package/dist/features/engage/runtime.d.ts +11 -0
- package/dist/features/engage/runtime.d.ts.map +1 -1
- package/dist/features/engage/runtime.js +25 -10
- package/dist/features/engage/runtime.js.map +1 -1
- package/dist/features/engage/throttle.d.ts +16 -6
- package/dist/features/engage/throttle.d.ts.map +1 -1
- package/dist/features/engage/throttle.js +96 -6
- package/dist/features/engage/throttle.js.map +1 -1
- package/dist/features/engage/types.d.ts +6 -0
- package/dist/features/engage/types.d.ts.map +1 -1
- package/dist/features/engage/types.js.map +1 -1
- package/dist/features/inapp/InApp2Feature.d.ts.map +1 -1
- package/dist/features/inapp/InApp2Feature.js +1 -0
- package/dist/features/inapp/InApp2Feature.js.map +1 -1
- package/dist/features/inapp/blocks/styles.d.ts +1 -1
- package/dist/features/inapp/blocks/styles.d.ts.map +1 -1
- package/dist/features/inapp/blocks/styles.js +30 -3
- package/dist/features/inapp/blocks/styles.js.map +1 -1
- package/dist/features/inapp/center/panel.d.ts +1 -1
- package/dist/features/inapp/center/panel.d.ts.map +1 -1
- package/dist/features/inapp/center/panel.js +40 -6
- package/dist/features/inapp/center/panel.js.map +1 -1
- package/dist/features/inapp/core/engine.d.ts +2 -0
- package/dist/features/inapp/core/engine.d.ts.map +1 -1
- package/dist/features/inapp/core/engine.js +1 -1
- package/dist/features/inapp/core/engine.js.map +1 -1
- package/dist/features/inapp/core/host.d.ts.map +1 -1
- package/dist/features/inapp/core/host.js +5 -1
- package/dist/features/inapp/core/host.js.map +1 -1
- package/dist/features/inapp/core/targeting.d.ts +29 -2
- package/dist/features/inapp/core/targeting.d.ts.map +1 -1
- package/dist/features/inapp/core/targeting.js +78 -4
- package/dist/features/inapp/core/targeting.js.map +1 -1
- package/dist/features/inapp/surfaces/coachmark.d.ts.map +1 -1
- package/dist/features/inapp/surfaces/coachmark.js +5 -2
- package/dist/features/inapp/surfaces/coachmark.js.map +1 -1
- package/dist/features/inapp/surfaces/hotspot.d.ts.map +1 -1
- package/dist/features/inapp/surfaces/hotspot.js +5 -2
- package/dist/features/inapp/surfaces/hotspot.js.map +1 -1
- package/dist/features/inapp/surfaces/inline.d.ts.map +1 -1
- package/dist/features/inapp/surfaces/inline.js +7 -1
- package/dist/features/inapp/surfaces/inline.js.map +1 -1
- package/dist/features/inapp/surfaces/popover.d.ts.map +1 -1
- package/dist/features/inapp/surfaces/popover.js +5 -2
- package/dist/features/inapp/surfaces/popover.js.map +1 -1
- package/dist/features/inapp/surfaces/styles.d.ts +1 -1
- package/dist/features/inapp/surfaces/styles.d.ts.map +1 -1
- package/dist/features/inapp/surfaces/styles.js +60 -11
- package/dist/features/inapp/surfaces/styles.js.map +1 -1
- package/dist/features/inapp/surfaces/toolbar.d.ts.map +1 -1
- package/dist/features/inapp/surfaces/toolbar.js +5 -2
- package/dist/features/inapp/surfaces/toolbar.js.map +1 -1
- package/dist/features/inapp/surfaces/tour.d.ts.map +1 -1
- package/dist/features/inapp/surfaces/tour.js +5 -2
- package/dist/features/inapp/surfaces/tour.js.map +1 -1
- package/dist/features/inapp/types.d.ts +2 -0
- package/dist/features/inapp/types.d.ts.map +1 -1
- package/dist/features/journey/InteractionTracker.d.ts.map +1 -1
- package/dist/features/journey/InteractionTracker.js +137 -0
- package/dist/features/journey/InteractionTracker.js.map +1 -1
- package/dist/features/manifest.d.ts +21 -0
- package/dist/features/manifest.d.ts.map +1 -1
- package/dist/features/manifest.js +27 -10
- package/dist/features/manifest.js.map +1 -1
- package/dist/features/replay/ReplayFeature.d.ts +20 -0
- package/dist/features/replay/ReplayFeature.d.ts.map +1 -1
- package/dist/features/replay/ReplayFeature.js +155 -5
- package/dist/features/replay/ReplayFeature.js.map +1 -1
- package/dist/features/replay/lifecycle/recorder.d.ts +21 -1
- package/dist/features/replay/lifecycle/recorder.d.ts.map +1 -1
- package/dist/features/replay/lifecycle/recorder.js +20 -4
- package/dist/features/replay/lifecycle/recorder.js.map +1 -1
- package/dist/features/session/sessionStore.d.ts +17 -1
- package/dist/features/session/sessionStore.d.ts.map +1 -1
- package/dist/features/session/sessionStore.js +17 -1
- package/dist/features/session/sessionStore.js.map +1 -1
- package/dist/pipeline/pipeline.d.ts +82 -0
- package/dist/pipeline/pipeline.d.ts.map +1 -1
- package/dist/pipeline/pipeline.js +307 -14
- package/dist/pipeline/pipeline.js.map +1 -1
- package/dist/public/ScaleBunFacade.d.ts +31 -0
- package/dist/public/ScaleBunFacade.d.ts.map +1 -1
- package/dist/public/ScaleBunFacade.js +43 -7
- package/dist/public/ScaleBunFacade.js.map +1 -1
- package/dist/scalebun.min.js +147 -65
- package/dist/scalebun.min.js.map +4 -4
- package/dist/transport/httpClient.d.ts +56 -2
- package/dist/transport/httpClient.d.ts.map +1 -1
- package/dist/transport/httpClient.js +81 -5
- package/dist/transport/httpClient.js.map +1 -1
- package/package.json +9 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InApp2Feature.d.ts","sourceRoot":"","sources":["../../../src/features/inapp/InApp2Feature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGxE,qBAAa,aAAc,YAAW,QAAQ;IAC5C,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAc;IAE7B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"InApp2Feature.d.ts","sourceRoot":"","sources":["../../../src/features/inapp/InApp2Feature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGxE,qBAAa,aAAc,YAAW,QAAQ;IAC5C,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,CAAc;IAE7B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/C,wGAAwG;IACxG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7B,iGAAiG;IACjG,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,IAAI;CAKjB"}
|
|
@@ -19,6 +19,7 @@ export class InApp2Feature {
|
|
|
19
19
|
apiBaseUrl: ctx.apiBaseUrl,
|
|
20
20
|
clientKey: ctx.clientKey,
|
|
21
21
|
deviceId: ctx.deviceId,
|
|
22
|
+
sessionId: ctx.sessionId,
|
|
22
23
|
appVersion: ctx.appVersion,
|
|
23
24
|
userId: () => ctx.getUserId?.(),
|
|
24
25
|
route: () => (typeof location !== 'undefined' ? location.pathname + location.search : ''),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InApp2Feature.js","sourceRoot":"","sources":["../../../src/features/inapp/InApp2Feature.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,aAAa;IAA1B;QACW,SAAI,GAAG,QAAQ,CAAC;QACjB,WAAM,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"InApp2Feature.js","sourceRoot":"","sources":["../../../src/features/inapp/InApp2Feature.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,aAAa;IAA1B;QACW,SAAI,GAAG,QAAQ,CAAC;QACjB,WAAM,GAAG,KAAK,CAAC;IAyCzB,CAAC;IAtCC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAmB;QAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAC7E,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,mCAAmC;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC;YAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE;YAC/B,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,4DAA4D;SAC3F,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,wGAAwG;IACxG,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,iGAAiG;IACjG,UAAU;QACR,KAAK,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* host (via `ShadowHost.addStyles`) — classes, not inline style attrs, so a strict CSP passes.
|
|
4
4
|
* All colors reference the theme CSS vars set on `:host` (§P0.2), so light/dark just works.
|
|
5
5
|
*/
|
|
6
|
-
export declare const BLOCKS_CSS = "\n.scalebun-h{ font-size:17px; font-weight:700; margin:0 0 6px; color:var(--scalebun-fg); }\n.scalebun-text{ font-size:14px; line-height:1.5; margin:0 0 6px; color:var(--scalebun-fg); }\n.scalebun-rich{ font-size:14px; line-height:1.5; color:var(--scalebun-fg); }\n.scalebun-img{ display:block; max-width:100%; height:auto; border-radius:8px; margin:0 0 10px; }\n.scalebun-list{ margin:0 0 8px; padding-left:18px; color:var(--scalebun-fg); font-size:14px; }\n.scalebun-list li{ margin:2px 0; }\n.scalebun-callout{ display:flex; gap:8px; align-items:flex-start; background:color-mix(in srgb, var(--scalebun-accent) 10%, transparent);\n border:1px solid var(--scalebun-border); border-radius:8px; padding:8px 10px; font-size:13.5px; color:var(--scalebun-fg); margin:0 0 8px; }\n.scalebun-badge{ display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px;\n background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-radius:999px; padding:2px 8px; }\n.scalebun-divider{ border:0; border-top:1px solid var(--scalebun-border); margin:10px 0; }\n.scalebun-progress{ height:8px; border-radius:4px; background:color-mix(in srgb, var(--scalebun-fg) 10%, transparent); overflow:hidden; margin:8px 0; }\n.scalebun-progress-fill{ height:100%; background:var(--scalebun-accent); border-radius:4px; transition:width .3s ease; }\n.scalebun-spacer{ height:8px; }\n.scalebun-cta-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }\n.scalebun-btn{ font:inherit; font-size:13.5px; font-weight:600; border-radius:8px; padding:8px 14px; cursor:pointer;\n border:1px solid transparent; transition:filter .12s ease; }\n.scalebun-btn:hover{ filter:brightness(1.06); }\n.scalebun-btn:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n.scalebun-btn-primary{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); }\n.scalebun-btn-secondary{ background:transparent; color:var(--scalebun-fg); border-color:var(--scalebun-border); }\n.scalebun-btn-ghost{ background:transparent; color:var(--scalebun-fg); }\n.scalebun-btn-link{ background:transparent; color:var(--scalebun-accent); border:0; padding:8px 4px; text-decoration:underline; }\n.scalebun-btn-dismiss{ background:transparent; color:var(--scalebun-muted); border:0; }\n\n/* Checklist \u2014 state-reflecting, never state-granting (the mark comes from the server). */\n.scalebun-checklist{ list-style:none; margin:8px 0; padding:0; display:flex; flex-direction:column; gap:7px; }\n.scalebun-checklist-item{ display:flex; align-items:flex-start; gap:9px; font-size:14px; line-height:1.45; }\n.scalebun-checklist-mark{ flex-shrink:0; width:18px; height:18px; border-radius:50%; margin-top:1px;\n border:1.5px solid var(--scalebun-border); display:grid; place-items:center;\n font-size:11px; font-weight:700; line-height:1; }\n.scalebun-checklist-item[data-done=\"true\"] .scalebun-checklist-mark{\n background:var(--scalebun-accent); border-color:var(--scalebun-accent); color:var(--scalebun-accent-fg); }\n/* Done items recede but stay readable \u2014 struck-through text fails contrast for many readers. */\n.scalebun-checklist-item[data-done=\"true\"] .scalebun-checklist-label{ color:var(--scalebun-muted); }\n\n/* The engage theme contract names titleColor and bodyColor separately while IAM carries one\n foreground. Headings read their own var, which FALLS BACK to --scalebun-fg \u2014 so nothing changes\n unless a campaign actually set a distinct title colour. */\n.scalebun-h{ color:var(--scalebun-title, var(--scalebun-fg)); }\n\n/* multiStepSheet wizard paging. Buttons reuse .scalebun-btn-* above rather than restyling. */\n.scalebun-steps{ display:flex; flex-direction:column; gap:12px; }\n.scalebun-steps-rail{ display:flex; gap:6px; align-items:center; }\n.scalebun-steps-dot{ height:4px; flex:1; border-radius:99px; background:var(--scalebun-border);\n transition:background .18s ease; }\n.scalebun-steps-dot[data-state=\"current\"], .scalebun-steps-dot[data-state=\"done\"]{ background:var(--scalebun-accent); }\n.scalebun-steps-dot[data-state=\"todo\"]{ opacity:.55; }\n.scalebun-steps-title{ font-size:16px; font-weight:700; }\n.scalebun-steps-body{ font-size:14px; line-height:1.5; color:var(--scalebun-muted); }\n/* Back sits left, the primary action right; margin-left:auto on the forward button keeps that\n split stable when Back/Skip are hidden on the first and last steps. */\n.scalebun-steps-nav{ display:flex; gap:8px; align-items:center; margin-top:2px; }\n.scalebun-steps-nav .scalebun-btn-primary{ margin-left:auto; }\n@media (prefers-reduced-motion: reduce){ .scalebun-steps-dot{ transition:none; } }\n\n/* heavy blocks (P3.6) \u2014 styles live with the light sheet (adopted once); the renderers are lazy */\n.scalebun-md-h{ font-weight:700; margin:8px 0 6px; }\n.scalebun-md-p{ font-size:14px; line-height:1.5; margin:0 0 8px; }\n.scalebun-md-ul{ margin:0 0 8px; padding-left:18px; font-size:14px; }\n.scalebun-md code, .scalebun-code code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }\n.scalebun-md code{ background:color-mix(in srgb, var(--scalebun-fg) 8%, transparent); padding:1px 5px; border-radius:5px; font-size:12.5px; }\n.scalebun-code{ border:1px solid var(--scalebun-border); border-radius:10px; overflow:hidden; margin:0 0 8px; }\n.scalebun-code-bar{ display:flex; align-items:center; justify-content:space-between; padding:6px 10px;\n background:color-mix(in srgb, var(--scalebun-fg) 6%, transparent); border-bottom:1px solid var(--scalebun-border); }\n.scalebun-code-lang{ font-size:11px; color:var(--scalebun-muted); text-transform:uppercase; letter-spacing:.04em; }\n.scalebun-code-copy{ background:none; border:0; color:var(--scalebun-accent); cursor:pointer; font:inherit; font-size:11.5px; }\n.scalebun-code-pre{ margin:0; padding:12px; overflow-x:auto; font-size:12.5px; line-height:1.5; }\n.scalebun-stat{ display:inline-flex; flex-direction:column; }\n.scalebun-stat-value{ font-size:26px; font-weight:800; line-height:1; }\n.scalebun-stat-label{ font-size:12px; color:var(--scalebun-muted); margin-top:3px; }\n.scalebun-stat-delta{ font-size:12px; font-weight:700; margin-top:2px; }\n.scalebun-stat-delta.up{ color:#2fa96b; } .scalebun-stat-delta.down{ color:#e0483d; }\n.scalebun-table{ width:100%; border-collapse:collapse; font-size:13px; margin:0 0 8px; }\n.scalebun-table th, .scalebun-table td{ text-align:left; padding:7px 10px; border-bottom:1px solid var(--scalebun-border); }\n.scalebun-table th{ color:var(--scalebun-muted); font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:.03em; }\n.scalebun-video{ position:relative; border-radius:10px; overflow:hidden; }\n.scalebun-video-poster{ display:block; position:relative; width:100%; padding:0; border:0; cursor:pointer; background:#000; }\n.scalebun-video-poster img{ display:block; width:100%; height:auto; opacity:.85; }\n.scalebun-video-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:34px; }\n.scalebun-video-el{ display:block; width:100%; height:auto; }\n\n/* mechanic blocks \u2014 countdown */\n.scalebun-countdown{ display:flex; gap:8px; justify-content:center; margin:10px 0; }\n.scalebun-cd-cell{ min-width:52px; text-align:center; background:color-mix(in srgb, var(--scalebun-fg) 8%, transparent);\n border:1px solid var(--scalebun-border); border-radius:10px; padding:8px 6px; }\n.scalebun-cd-num{ font-size:22px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1; }\n.scalebun-cd-lab{ font-size:10px; color:var(--scalebun-muted); text-transform:uppercase; letter-spacing:.05em; margin-top:4px; }\n/* carousel */\n.scalebun-carousel{ margin:0 0 8px; }\n.scalebun-car-track{ display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:4px; }\n.scalebun-car-track::-webkit-scrollbar{ display:none; }\n.scalebun-car-slide{ flex:0 0 100%; scroll-snap-align:center; }\n.scalebun-car-img{ width:100%; height:auto; border-radius:10px; display:block; margin-bottom:8px; }\n.scalebun-car-title{ font-weight:700; font-size:14px; margin-bottom:4px; }\n.scalebun-car-text{ font-size:13px; color:var(--scalebun-muted); }\n.scalebun-car-dots{ display:flex; gap:6px; justify-content:center; margin-top:8px; }\n.scalebun-car-dot{ width:7px; height:7px; padding:0; border:0; border-radius:50%; cursor:pointer;\n background:color-mix(in srgb, var(--scalebun-fg) 25%, transparent); }\n.scalebun-car-dot.on{ background:var(--scalebun-accent); }\n/* product grid */\n.scalebun-pgrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:10px; margin:0 0 8px; }\n.scalebun-pcard{ position:relative; text-align:left; background:var(--scalebun-bg); border:1px solid var(--scalebun-border);\n border-radius:10px; padding:8px; cursor:pointer; font:inherit; color:var(--scalebun-fg); }\n.scalebun-pcard:hover{ border-color:var(--scalebun-accent); }\n.scalebun-pcard-img{ width:100%; height:auto; border-radius:6px; display:block; margin-bottom:6px; }\n.scalebun-pcard-badge{ position:absolute; top:6px; left:6px; font-size:10px; font-weight:700; background:var(--scalebun-accent);\n color:var(--scalebun-accent-fg); border-radius:6px; padding:1px 6px; }\n.scalebun-pcard-title{ font-size:12.5px; font-weight:600; }\n.scalebun-pcard-price{ font-size:13px; font-weight:800; color:var(--scalebun-accent); margin-top:2px; }\n/* confetti */\n.scalebun-confetti{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }\n.scalebun-confetti-canvas{ position:absolute; inset:0; width:100%; height:100%; }\n.scalebun-confetti-static{ position:static; display:flex; align-items:center; justify-content:center; font-size:40px; }\n/* spin wheel */\n.scalebun-wheel{ position:relative; display:flex; flex-direction:column; align-items:center; gap:12px; margin:8px 0; }\n.scalebun-wheel-svg{ display:block; transform-origin:50% 50%; }\n.scalebun-wheel-pointer{ position:absolute; top:-2px; left:50%; transform:translateX(-50%); width:0; height:0;\n border-left:9px solid transparent; border-right:9px solid transparent; border-top:14px solid var(--scalebun-fg); z-index:2; }\n.scalebun-wheel-spin{ font:inherit; font-weight:800; font-size:13px; letter-spacing:.04em; padding:9px 20px; border-radius:999px;\n border:0; background:var(--scalebun-accent); color:var(--scalebun-accent-fg); cursor:pointer; }\n/* scratch card */\n.scalebun-scratch{ position:relative; width:300px; max-width:100%; height:90px; margin:8px auto; border-radius:10px; overflow:hidden;\n border:1px dashed var(--scalebun-border); }\n.scalebun-scratch-prize{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-weight:800;\n font-size:18px; color:var(--scalebun-accent); }\n.scalebun-scratch-cover{ position:absolute; inset:0; width:100%; height:100%; cursor:crosshair; touch-action:none; }\n/* Mystery box: a lid you TAP, not a surface you drag. Same block, same server-decided prize. */\n.scalebun-scratch-box{ height:120px; }\n.scalebun-scratch-lid{ position:absolute; inset:0; width:100%; height:100%; border:0; cursor:pointer;\n display:grid; place-items:center; font-size:40px; line-height:1;\n background:linear-gradient(160deg, var(--scalebun-accent), color-mix(in srgb, var(--scalebun-accent) 60%, #000));\n transition:transform .3s ease, opacity .3s ease; }\n.scalebun-scratch-lid:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n.scalebun-scratch-lid[data-open=\"true\"]{ transform:translateY(-100%) rotate(-6deg); opacity:0; pointer-events:none; }\n@media (prefers-reduced-motion: reduce){ .scalebun-scratch-lid{ transition:none; } }\n/* Gamified failure state \u2014 one presentation across every mechanic. */\n.scalebun-game-note{ display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;\n margin:10px 0 0; padding:9px 12px; border-radius:10px; font-size:13px; line-height:1.4; text-align:center;\n background:color-mix(in srgb, var(--scalebun-fg) 6%, transparent); color:var(--scalebun-muted); }\n.scalebun-game-retry{ border:0; cursor:pointer; font:inherit; font-weight:600; padding:5px 12px; border-radius:8px;\n background:var(--scalebun-accent); color:var(--scalebun-accent-fg, #fff); }\n.scalebun-game-retry:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n/* streak / daily check-in: a run of day cells. Wraps, so a 31-day month does not overflow. */\n.scalebun-streak{ display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }\n.scalebun-streak-day{ flex:0 0 auto; min-width:38px; padding:7px 4px; border-radius:9px; border:0;\n display:flex; flex-direction:column; align-items:center; gap:3px; font:inherit;\n background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); color:var(--scalebun-muted); }\n.scalebun-streak-mark{ font-size:16px; line-height:1.1; min-height:18px; }\n.scalebun-streak-label{ font-size:10px; letter-spacing:.02em; text-transform:uppercase; }\n.scalebun-streak-day[data-done=\"true\"]{ background:color-mix(in srgb, var(--scalebun-accent) 18%, transparent);\n color:var(--scalebun-accent); }\n/* Today is the only actionable cell, so it is the only one that looks pressable. */\n.scalebun-streak-day[data-today=\"true\"]{ cursor:pointer; color:var(--scalebun-fg);\n box-shadow:inset 0 0 0 2px var(--scalebun-accent); }\n.scalebun-streak-day[data-today=\"true\"]:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n/* slot machine */\n.scalebun-slot{ display:flex; flex-direction:column; align-items:center; gap:12px; margin:8px 0; }\n.scalebun-slot-reels{ display:flex; gap:8px; }\n.scalebun-slot-reel{ width:48px; height:44px; overflow:hidden; border:1px solid var(--scalebun-border); border-radius:8px;\n background:color-mix(in srgb, var(--scalebun-fg) 6%, transparent); }\n.scalebun-slot-strip{ display:flex; flex-direction:column; transform:translateY(0); }\n.scalebun-slot-cell{ height:44px; display:flex; align-items:center; justify-content:center; font-size:24px; }\n.scalebun-slot-spin{ padding:8px 18px; }\n/* qr */\n.scalebun-qr{ display:flex; flex-direction:column; align-items:center; gap:8px; margin:8px 0; }\n.scalebun-qr-svg{ border-radius:8px; }\n.scalebun-qr-cap{ font-size:11.5px; color:var(--scalebun-muted); word-break:break-all; text-align:center; max-width:220px; }\n\n/* feedback / mechanic blocks (P4.2) */\n.scalebun-nps{ display:flex; gap:4px; flex-wrap:wrap; margin:6px 0; }\n.scalebun-nps-btn{ width:30px; height:30px; border:1px solid var(--scalebun-border); border-radius:7px; background:transparent;\n color:var(--scalebun-fg); cursor:pointer; font:inherit; font-size:12.5px; }\n.scalebun-nps-btn:hover{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-color:transparent; }\n.scalebun-rating{ display:flex; gap:2px; }\n.scalebun-star{ background:none; border:0; cursor:pointer; font-size:22px; color:var(--scalebun-border); padding:0 2px; }\n.scalebun-star.on{ color:#f5b301; }\n.scalebun-emoji{ display:flex; gap:8px; }\n.scalebun-emoji-btn{ background:none; border:0; cursor:pointer; font-size:24px; padding:2px; border-radius:8px; }\n.scalebun-emoji-btn:hover{ background:color-mix(in srgb, var(--scalebun-fg) 8%, transparent); }\n.scalebun-poll-q, .scalebun-quiz .scalebun-poll-q{ font-weight:600; font-size:13.5px; margin:0 0 8px; }\n.scalebun-poll-opt, .scalebun-quiz-opt{ position:relative; display:flex; align-items:center; width:100%; text-align:left;\n border:1px solid var(--scalebun-border); border-radius:8px; background:transparent; color:var(--scalebun-fg);\n padding:9px 12px; margin:0 0 6px; cursor:pointer; font:inherit; font-size:13.5px; overflow:hidden; }\n.scalebun-poll-opt:hover, .scalebun-quiz-opt:hover{ border-color:var(--scalebun-accent); }\n.scalebun-poll-label{ position:relative; z-index:1; flex:1; }\n.scalebun-poll-bar{ position:absolute; left:0; top:0; bottom:0; background:color-mix(in srgb, var(--scalebun-accent) 22%, transparent); }\n.scalebun-poll-pct{ position:relative; z-index:1; font-size:12px; color:var(--scalebun-muted); }\n.scalebun-quiz-opt.correct{ border-color:#2fa96b; background:color-mix(in srgb, #2fa96b 14%, transparent); }\n.scalebun-quiz-opt.incorrect{ border-color:#e0483d; background:color-mix(in srgb, #e0483d 14%, transparent); }\n";
|
|
6
|
+
export declare const BLOCKS_CSS = "\n/* Text must be BREAKABLE. Real in-app copy carries runs with no space in them \u2014 a support URL, a\n deploy hash, a pasted id, a German compound \u2014 and nothing here could break one, so it ran\n straight out of its container. Sweeping the catalog with a single long URL took the count from 6\n variants to 86 of 100, on every surface at once; it was invisible only because the catalog writes\n its own short copy. overflow-wrap:anywhere over break-word on purpose: it also shrinks the box's\n min-content width, which is what stops a panel being forced wider than the viewport and pushing\n the whole page sideways. */\n.scalebun-h, .scalebun-text, .scalebun-rich, .scalebun-list, .scalebun-callout,\n.scalebun-checklist-item, .scalebun-checklist-label, .scalebun-steps-title, .scalebun-steps-body,\n.scalebun-md-h, .scalebun-md-p, .scalebun-md-ul, .scalebun-stat-value, .scalebun-stat-label,\n.scalebun-poll-q, .scalebun-poll-opt, .scalebun-quiz-opt,\n.scalebun-table th, .scalebun-table td{ overflow-wrap:anywhere; min-width:0; }\n\n.scalebun-h{ font-size:17px; font-weight:700; margin:0 0 6px; color:var(--scalebun-fg); }\n.scalebun-text{ font-size:14px; line-height:1.5; margin:0 0 6px; color:var(--scalebun-fg); }\n.scalebun-rich{ font-size:14px; line-height:1.5; color:var(--scalebun-fg); }\n.scalebun-img{ display:block; max-width:100%; height:auto; border-radius:8px; margin:0 0 10px; }\n.scalebun-list{ margin:0 0 8px; padding-left:18px; color:var(--scalebun-fg); font-size:14px; }\n.scalebun-list li{ margin:2px 0; }\n.scalebun-callout{ display:flex; gap:8px; align-items:flex-start; background:color-mix(in srgb, var(--scalebun-accent) 10%, transparent);\n border:1px solid var(--scalebun-border); border-radius:8px; padding:8px 10px; font-size:13.5px; color:var(--scalebun-fg); margin:0 0 8px; }\n.scalebun-badge{ display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px;\n background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-radius:999px; padding:2px 8px; }\n.scalebun-divider{ border:0; border-top:1px solid var(--scalebun-border); margin:10px 0; }\n.scalebun-progress{ height:8px; border-radius:4px; background:color-mix(in srgb, var(--scalebun-fg) 10%, transparent); overflow:hidden; margin:8px 0; }\n.scalebun-progress-fill{ height:100%; background:var(--scalebun-accent); border-radius:4px; transition:width .3s ease; }\n.scalebun-spacer{ height:8px; }\n/* The row already wraps between buttons; what it could not do is let a SINGLE button be narrower\n than its own label. A button is a flex item, and a flex item's min-width defaults to its content,\n so one long label pushed the row past the card edge no matter how much room the row had to wrap\n into. min-width:0 plus a breakable label is what lets an over-long action fit the surface instead\n of widening it \u2014 80 of the clipped findings were this one row. */\n/* NO min-width:0 on the row. Adding it let the banner's flex layout squeeze the row to ~40px, and\n overflow-wrap:anywhere on the button then split \"OK\" into \"O\" over \"K\". The row keeps its\n automatic minimum so a CTA cannot be crushed by the text beside it; the banner's .scalebun-body\n carries min-width:0 and absorbs the squeeze instead, which is the right priority \u2014 the button is\n the part that has to stay clickable and readable. */\n.scalebun-cta-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }\n/* The floor must NOT be relative: min(100%, 5em) resolves 100% against the already-squeezed row, so\n it evaluated to the squeezed width and provided no floor whatsoever (measured: still 31px). An\n absolute floor is what actually holds, and it also gives the row a real min-content width \u2014\n overflow-wrap:anywhere would otherwise let the row's minimum collapse to one character. */\n.scalebun-btn{ font:inherit; font-size:13.5px; font-weight:600; border-radius:8px; padding:8px 14px; cursor:pointer;\n border:1px solid transparent; transition:filter .12s ease; min-width:5em; max-width:100%; overflow-wrap:anywhere; }\n.scalebun-btn:hover{ filter:brightness(1.06); }\n.scalebun-btn:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n.scalebun-btn-primary{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); }\n.scalebun-btn-secondary{ background:transparent; color:var(--scalebun-fg); border-color:var(--scalebun-border); }\n.scalebun-btn-ghost{ background:transparent; color:var(--scalebun-fg); }\n.scalebun-btn-link{ background:transparent; color:var(--scalebun-accent); border:0; padding:8px 4px; text-decoration:underline; }\n.scalebun-btn-dismiss{ background:transparent; color:var(--scalebun-muted); border:0; }\n\n/* Checklist \u2014 state-reflecting, never state-granting (the mark comes from the server). */\n.scalebun-checklist{ list-style:none; margin:8px 0; padding:0; display:flex; flex-direction:column; gap:7px; }\n.scalebun-checklist-item{ display:flex; align-items:flex-start; gap:9px; font-size:14px; line-height:1.45; }\n.scalebun-checklist-mark{ flex-shrink:0; width:18px; height:18px; border-radius:50%; margin-top:1px;\n border:1.5px solid var(--scalebun-border); display:grid; place-items:center;\n font-size:11px; font-weight:700; line-height:1; }\n.scalebun-checklist-item[data-done=\"true\"] .scalebun-checklist-mark{\n background:var(--scalebun-accent); border-color:var(--scalebun-accent); color:var(--scalebun-accent-fg); }\n/* Done items recede but stay readable \u2014 struck-through text fails contrast for many readers. */\n.scalebun-checklist-item[data-done=\"true\"] .scalebun-checklist-label{ color:var(--scalebun-muted); }\n\n/* The engage theme contract names titleColor and bodyColor separately while IAM carries one\n foreground. Headings read their own var, which FALLS BACK to --scalebun-fg \u2014 so nothing changes\n unless a campaign actually set a distinct title colour. */\n.scalebun-h{ color:var(--scalebun-title, var(--scalebun-fg)); }\n\n/* multiStepSheet wizard paging. Buttons reuse .scalebun-btn-* above rather than restyling. */\n.scalebun-steps{ display:flex; flex-direction:column; gap:12px; }\n.scalebun-steps-rail{ display:flex; gap:6px; align-items:center; }\n.scalebun-steps-dot{ height:4px; flex:1; border-radius:99px; background:var(--scalebun-border);\n transition:background .18s ease; }\n.scalebun-steps-dot[data-state=\"current\"], .scalebun-steps-dot[data-state=\"done\"]{ background:var(--scalebun-accent); }\n.scalebun-steps-dot[data-state=\"todo\"]{ opacity:.55; }\n.scalebun-steps-title{ font-size:16px; font-weight:700; }\n.scalebun-steps-body{ font-size:14px; line-height:1.5; color:var(--scalebun-muted); }\n/* Back sits left, the primary action right; margin-left:auto on the forward button keeps that\n split stable when Back/Skip are hidden on the first and last steps. */\n.scalebun-steps-nav{ display:flex; gap:8px; align-items:center; margin-top:2px; }\n.scalebun-steps-nav .scalebun-btn-primary{ margin-left:auto; }\n@media (prefers-reduced-motion: reduce){ .scalebun-steps-dot{ transition:none; } }\n\n/* heavy blocks (P3.6) \u2014 styles live with the light sheet (adopted once); the renderers are lazy */\n.scalebun-md-h{ font-weight:700; margin:8px 0 6px; }\n.scalebun-md-p{ font-size:14px; line-height:1.5; margin:0 0 8px; }\n.scalebun-md-ul{ margin:0 0 8px; padding-left:18px; font-size:14px; }\n.scalebun-md code, .scalebun-code code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }\n.scalebun-md code{ background:color-mix(in srgb, var(--scalebun-fg) 8%, transparent); padding:1px 5px; border-radius:5px; font-size:12.5px; }\n.scalebun-code{ border:1px solid var(--scalebun-border); border-radius:10px; overflow:hidden; margin:0 0 8px; }\n.scalebun-code-bar{ display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; padding:6px 10px;\n background:color-mix(in srgb, var(--scalebun-fg) 6%, transparent); border-bottom:1px solid var(--scalebun-border); }\n.scalebun-code-lang{ overflow-wrap:anywhere; min-width:0; font-size:11px; color:var(--scalebun-muted); text-transform:uppercase; letter-spacing:.04em; }\n.scalebun-code-copy{ background:none; border:0; color:var(--scalebun-accent); cursor:pointer; font:inherit; font-size:11.5px; }\n.scalebun-code-pre{ margin:0; padding:12px; overflow-x:auto; font-size:12.5px; line-height:1.5; }\n.scalebun-stat{ display:inline-flex; flex-direction:column; }\n.scalebun-stat-value{ font-size:26px; font-weight:800; line-height:1; }\n.scalebun-stat-label{ font-size:12px; color:var(--scalebun-muted); margin-top:3px; }\n.scalebun-stat-delta{ font-size:12px; font-weight:700; margin-top:2px; }\n.scalebun-stat-delta.up{ color:#2fa96b; } .scalebun-stat-delta.down{ color:#e0483d; }\n.scalebun-table{ width:100%; border-collapse:collapse; font-size:13px; margin:0 0 8px; }\n.scalebun-table th, .scalebun-table td{ text-align:left; padding:7px 10px; border-bottom:1px solid var(--scalebun-border); }\n.scalebun-table th{ color:var(--scalebun-muted); font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:.03em; }\n.scalebun-video{ position:relative; border-radius:10px; overflow:hidden; }\n.scalebun-video-poster{ display:block; position:relative; width:100%; padding:0; border:0; cursor:pointer; background:#000; }\n.scalebun-video-poster img{ display:block; width:100%; height:auto; opacity:.85; }\n.scalebun-video-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:34px; }\n.scalebun-video-el{ display:block; width:100%; height:auto; }\n\n/* mechanic blocks \u2014 countdown */\n.scalebun-countdown{ display:flex; gap:8px; justify-content:center; margin:10px 0; }\n.scalebun-cd-cell{ min-width:52px; text-align:center; background:color-mix(in srgb, var(--scalebun-fg) 8%, transparent);\n border:1px solid var(--scalebun-border); border-radius:10px; padding:8px 6px; }\n.scalebun-cd-num{ font-size:22px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1; }\n.scalebun-cd-lab{ font-size:10px; color:var(--scalebun-muted); text-transform:uppercase; letter-spacing:.05em; margin-top:4px; }\n/* carousel */\n.scalebun-carousel{ margin:0 0 8px; }\n.scalebun-car-track{ display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:4px; }\n.scalebun-car-track::-webkit-scrollbar{ display:none; }\n.scalebun-car-slide{ flex:0 0 100%; scroll-snap-align:center; }\n.scalebun-car-img{ width:100%; height:auto; border-radius:10px; display:block; margin-bottom:8px; }\n.scalebun-car-title{ font-weight:700; font-size:14px; margin-bottom:4px; }\n.scalebun-car-text{ font-size:13px; color:var(--scalebun-muted); }\n.scalebun-car-dots{ display:flex; gap:6px; justify-content:center; margin-top:8px; }\n.scalebun-car-dot{ width:7px; height:7px; padding:0; border:0; border-radius:50%; cursor:pointer;\n background:color-mix(in srgb, var(--scalebun-fg) 25%, transparent); }\n.scalebun-car-dot.on{ background:var(--scalebun-accent); }\n/* product grid */\n.scalebun-pgrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:10px; margin:0 0 8px; }\n.scalebun-pcard{ position:relative; text-align:left; background:var(--scalebun-bg); border:1px solid var(--scalebun-border);\n border-radius:10px; padding:8px; cursor:pointer; font:inherit; color:var(--scalebun-fg); }\n.scalebun-pcard:hover{ border-color:var(--scalebun-accent); }\n.scalebun-pcard-img{ width:100%; height:auto; border-radius:6px; display:block; margin-bottom:6px; }\n.scalebun-pcard-badge{ position:absolute; top:6px; left:6px; font-size:10px; font-weight:700; background:var(--scalebun-accent);\n color:var(--scalebun-accent-fg); border-radius:6px; padding:1px 6px; }\n.scalebun-pcard-title{ font-size:12.5px; font-weight:600; }\n.scalebun-pcard-price{ font-size:13px; font-weight:800; color:var(--scalebun-accent); margin-top:2px; }\n/* confetti */\n.scalebun-confetti{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }\n.scalebun-confetti-canvas{ position:absolute; inset:0; width:100%; height:100%; }\n.scalebun-confetti-static{ position:static; display:flex; align-items:center; justify-content:center; font-size:40px; }\n/* spin wheel */\n.scalebun-wheel{ position:relative; display:flex; flex-direction:column; align-items:center; gap:12px; margin:8px 0; }\n.scalebun-wheel-svg{ display:block; transform-origin:50% 50%; }\n.scalebun-wheel-pointer{ position:absolute; top:-2px; left:50%; transform:translateX(-50%); width:0; height:0;\n border-left:9px solid transparent; border-right:9px solid transparent; border-top:14px solid var(--scalebun-fg); z-index:2; }\n.scalebun-wheel-spin{ font:inherit; font-weight:800; font-size:13px; letter-spacing:.04em; padding:9px 20px; border-radius:999px;\n border:0; background:var(--scalebun-accent); color:var(--scalebun-accent-fg); cursor:pointer; }\n/* scratch card */\n.scalebun-scratch{ position:relative; width:300px; max-width:100%; height:90px; margin:8px auto; border-radius:10px; overflow:hidden;\n border:1px dashed var(--scalebun-border); }\n.scalebun-scratch-prize{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-weight:800;\n font-size:18px; color:var(--scalebun-accent); }\n.scalebun-scratch-cover{ position:absolute; inset:0; width:100%; height:100%; cursor:crosshair; touch-action:none; }\n/* Mystery box: a lid you TAP, not a surface you drag. Same block, same server-decided prize. */\n.scalebun-scratch-box{ height:120px; }\n.scalebun-scratch-lid{ position:absolute; inset:0; width:100%; height:100%; border:0; cursor:pointer;\n display:grid; place-items:center; font-size:40px; line-height:1;\n background:linear-gradient(160deg, var(--scalebun-accent), color-mix(in srgb, var(--scalebun-accent) 60%, #000));\n transition:transform .3s ease, opacity .3s ease; }\n.scalebun-scratch-lid:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n.scalebun-scratch-lid[data-open=\"true\"]{ transform:translateY(-100%) rotate(-6deg); opacity:0; pointer-events:none; }\n@media (prefers-reduced-motion: reduce){ .scalebun-scratch-lid{ transition:none; } }\n/* Gamified failure state \u2014 one presentation across every mechanic. */\n.scalebun-game-note{ display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;\n margin:10px 0 0; padding:9px 12px; border-radius:10px; font-size:13px; line-height:1.4; text-align:center;\n background:color-mix(in srgb, var(--scalebun-fg) 6%, transparent); color:var(--scalebun-muted); }\n.scalebun-game-retry{ border:0; cursor:pointer; font:inherit; font-weight:600; padding:5px 12px; border-radius:8px;\n background:var(--scalebun-accent); color:var(--scalebun-accent-fg, #fff); }\n.scalebun-game-retry:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n/* streak / daily check-in: a run of day cells. Wraps, so a 31-day month does not overflow. */\n.scalebun-streak{ display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }\n.scalebun-streak-day{ flex:0 0 auto; min-width:38px; padding:7px 4px; border-radius:9px; border:0;\n display:flex; flex-direction:column; align-items:center; gap:3px; font:inherit;\n background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); color:var(--scalebun-muted); }\n.scalebun-streak-mark{ font-size:16px; line-height:1.1; min-height:18px; }\n.scalebun-streak-label{ font-size:10px; letter-spacing:.02em; text-transform:uppercase; }\n.scalebun-streak-day[data-done=\"true\"]{ background:color-mix(in srgb, var(--scalebun-accent) 18%, transparent);\n color:var(--scalebun-accent); }\n/* Today is the only actionable cell, so it is the only one that looks pressable. */\n.scalebun-streak-day[data-today=\"true\"]{ cursor:pointer; color:var(--scalebun-fg);\n box-shadow:inset 0 0 0 2px var(--scalebun-accent); }\n.scalebun-streak-day[data-today=\"true\"]:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n/* slot machine */\n.scalebun-slot{ display:flex; flex-direction:column; align-items:center; gap:12px; margin:8px 0; }\n.scalebun-slot-reels{ display:flex; gap:8px; }\n.scalebun-slot-reel{ width:48px; height:44px; overflow:hidden; border:1px solid var(--scalebun-border); border-radius:8px;\n background:color-mix(in srgb, var(--scalebun-fg) 6%, transparent); }\n.scalebun-slot-strip{ display:flex; flex-direction:column; transform:translateY(0); }\n.scalebun-slot-cell{ height:44px; display:flex; align-items:center; justify-content:center; font-size:24px; }\n.scalebun-slot-spin{ padding:8px 18px; }\n/* qr */\n.scalebun-qr{ display:flex; flex-direction:column; align-items:center; gap:8px; margin:8px 0; }\n.scalebun-qr-svg{ border-radius:8px; }\n.scalebun-qr-cap{ font-size:11.5px; color:var(--scalebun-muted); word-break:break-all; text-align:center; max-width:220px; }\n\n/* feedback / mechanic blocks (P4.2) */\n.scalebun-nps{ display:flex; gap:4px; flex-wrap:wrap; margin:6px 0; }\n.scalebun-nps-btn{ width:30px; height:30px; border:1px solid var(--scalebun-border); border-radius:7px; background:transparent;\n color:var(--scalebun-fg); cursor:pointer; font:inherit; font-size:12.5px; }\n.scalebun-nps-btn:hover{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-color:transparent; }\n.scalebun-rating{ display:flex; gap:2px; }\n.scalebun-star{ background:none; border:0; cursor:pointer; font-size:22px; color:var(--scalebun-border); padding:0 2px; }\n.scalebun-star.on{ color:#f5b301; }\n.scalebun-emoji{ display:flex; gap:8px; }\n.scalebun-emoji-btn{ background:none; border:0; cursor:pointer; font-size:24px; padding:2px; border-radius:8px; }\n.scalebun-emoji-btn:hover{ background:color-mix(in srgb, var(--scalebun-fg) 8%, transparent); }\n.scalebun-poll-q, .scalebun-quiz .scalebun-poll-q{ font-weight:600; font-size:13.5px; margin:0 0 8px; }\n.scalebun-poll-opt, .scalebun-quiz-opt{ position:relative; display:flex; align-items:center; width:100%; text-align:left;\n border:1px solid var(--scalebun-border); border-radius:8px; background:transparent; color:var(--scalebun-fg);\n padding:9px 12px; margin:0 0 6px; cursor:pointer; font:inherit; font-size:13.5px; overflow:hidden; }\n.scalebun-poll-opt:hover, .scalebun-quiz-opt:hover{ border-color:var(--scalebun-accent); }\n.scalebun-poll-label{ position:relative; z-index:1; flex:1; }\n.scalebun-poll-bar{ position:absolute; left:0; top:0; bottom:0; background:color-mix(in srgb, var(--scalebun-accent) 22%, transparent); }\n.scalebun-poll-pct{ position:relative; z-index:1; font-size:12px; color:var(--scalebun-muted); }\n.scalebun-quiz-opt.correct{ border-color:#2fa96b; background:color-mix(in srgb, #2fa96b 14%, transparent); }\n.scalebun-quiz-opt.incorrect{ border-color:#e0483d; background:color-mix(in srgb, #e0483d 14%, transparent); }\n";
|
|
7
7
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/blocks/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/blocks/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU,+9kBA0NtB,CAAC"}
|
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
* All colors reference the theme CSS vars set on `:host` (§P0.2), so light/dark just works.
|
|
5
5
|
*/
|
|
6
6
|
export const BLOCKS_CSS = `
|
|
7
|
+
/* Text must be BREAKABLE. Real in-app copy carries runs with no space in them — a support URL, a
|
|
8
|
+
deploy hash, a pasted id, a German compound — and nothing here could break one, so it ran
|
|
9
|
+
straight out of its container. Sweeping the catalog with a single long URL took the count from 6
|
|
10
|
+
variants to 86 of 100, on every surface at once; it was invisible only because the catalog writes
|
|
11
|
+
its own short copy. overflow-wrap:anywhere over break-word on purpose: it also shrinks the box's
|
|
12
|
+
min-content width, which is what stops a panel being forced wider than the viewport and pushing
|
|
13
|
+
the whole page sideways. */
|
|
14
|
+
.scalebun-h, .scalebun-text, .scalebun-rich, .scalebun-list, .scalebun-callout,
|
|
15
|
+
.scalebun-checklist-item, .scalebun-checklist-label, .scalebun-steps-title, .scalebun-steps-body,
|
|
16
|
+
.scalebun-md-h, .scalebun-md-p, .scalebun-md-ul, .scalebun-stat-value, .scalebun-stat-label,
|
|
17
|
+
.scalebun-poll-q, .scalebun-poll-opt, .scalebun-quiz-opt,
|
|
18
|
+
.scalebun-table th, .scalebun-table td{ overflow-wrap:anywhere; min-width:0; }
|
|
19
|
+
|
|
7
20
|
.scalebun-h{ font-size:17px; font-weight:700; margin:0 0 6px; color:var(--scalebun-fg); }
|
|
8
21
|
.scalebun-text{ font-size:14px; line-height:1.5; margin:0 0 6px; color:var(--scalebun-fg); }
|
|
9
22
|
.scalebun-rich{ font-size:14px; line-height:1.5; color:var(--scalebun-fg); }
|
|
@@ -18,9 +31,23 @@ export const BLOCKS_CSS = `
|
|
|
18
31
|
.scalebun-progress{ height:8px; border-radius:4px; background:color-mix(in srgb, var(--scalebun-fg) 10%, transparent); overflow:hidden; margin:8px 0; }
|
|
19
32
|
.scalebun-progress-fill{ height:100%; background:var(--scalebun-accent); border-radius:4px; transition:width .3s ease; }
|
|
20
33
|
.scalebun-spacer{ height:8px; }
|
|
34
|
+
/* The row already wraps between buttons; what it could not do is let a SINGLE button be narrower
|
|
35
|
+
than its own label. A button is a flex item, and a flex item's min-width defaults to its content,
|
|
36
|
+
so one long label pushed the row past the card edge no matter how much room the row had to wrap
|
|
37
|
+
into. min-width:0 plus a breakable label is what lets an over-long action fit the surface instead
|
|
38
|
+
of widening it — 80 of the clipped findings were this one row. */
|
|
39
|
+
/* NO min-width:0 on the row. Adding it let the banner's flex layout squeeze the row to ~40px, and
|
|
40
|
+
overflow-wrap:anywhere on the button then split "OK" into "O" over "K". The row keeps its
|
|
41
|
+
automatic minimum so a CTA cannot be crushed by the text beside it; the banner's .scalebun-body
|
|
42
|
+
carries min-width:0 and absorbs the squeeze instead, which is the right priority — the button is
|
|
43
|
+
the part that has to stay clickable and readable. */
|
|
21
44
|
.scalebun-cta-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
|
|
45
|
+
/* The floor must NOT be relative: min(100%, 5em) resolves 100% against the already-squeezed row, so
|
|
46
|
+
it evaluated to the squeezed width and provided no floor whatsoever (measured: still 31px). An
|
|
47
|
+
absolute floor is what actually holds, and it also gives the row a real min-content width —
|
|
48
|
+
overflow-wrap:anywhere would otherwise let the row's minimum collapse to one character. */
|
|
22
49
|
.scalebun-btn{ font:inherit; font-size:13.5px; font-weight:600; border-radius:8px; padding:8px 14px; cursor:pointer;
|
|
23
|
-
border:1px solid transparent; transition:filter .12s ease; }
|
|
50
|
+
border:1px solid transparent; transition:filter .12s ease; min-width:5em; max-width:100%; overflow-wrap:anywhere; }
|
|
24
51
|
.scalebun-btn:hover{ filter:brightness(1.06); }
|
|
25
52
|
.scalebun-btn:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }
|
|
26
53
|
.scalebun-btn-primary{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); }
|
|
@@ -67,9 +94,9 @@ export const BLOCKS_CSS = `
|
|
|
67
94
|
.scalebun-md code, .scalebun-code code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
|
|
68
95
|
.scalebun-md code{ background:color-mix(in srgb, var(--scalebun-fg) 8%, transparent); padding:1px 5px; border-radius:5px; font-size:12.5px; }
|
|
69
96
|
.scalebun-code{ border:1px solid var(--scalebun-border); border-radius:10px; overflow:hidden; margin:0 0 8px; }
|
|
70
|
-
.scalebun-code-bar{ display:flex; align-items:center; justify-content:space-between; padding:6px 10px;
|
|
97
|
+
.scalebun-code-bar{ display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; padding:6px 10px;
|
|
71
98
|
background:color-mix(in srgb, var(--scalebun-fg) 6%, transparent); border-bottom:1px solid var(--scalebun-border); }
|
|
72
|
-
.scalebun-code-lang{ font-size:11px; color:var(--scalebun-muted); text-transform:uppercase; letter-spacing:.04em; }
|
|
99
|
+
.scalebun-code-lang{ overflow-wrap:anywhere; min-width:0; font-size:11px; color:var(--scalebun-muted); text-transform:uppercase; letter-spacing:.04em; }
|
|
73
100
|
.scalebun-code-copy{ background:none; border:0; color:var(--scalebun-accent); cursor:pointer; font:inherit; font-size:11.5px; }
|
|
74
101
|
.scalebun-code-pre{ margin:0; padding:12px; overflow-x:auto; font-size:12.5px; line-height:1.5; }
|
|
75
102
|
.scalebun-stat{ display:inline-flex; flex-direction:column; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/features/inapp/blocks/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/features/inapp/blocks/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0NzB,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { ShadowHost } from '../core/host.js';
|
|
10
10
|
import type { CenterStore } from './store.js';
|
|
11
|
-
export declare const CENTER_CSS = "\n.scalebun-bell{ position:relative; width:44px; height:44px; border-radius:50%; border:1px solid var(--scalebun-
|
|
11
|
+
export declare const CENTER_CSS = "\n/* The launcher was the literal emoji \uD83D\uDD14 as button text. An emoji is a FONT glyph: it renders as a\n different picture on every platform, ignores the theme's foreground colour, sits on its own\n baseline rather than centred, and cannot be sized against the surrounding UI. It is drawn as an\n inline SVG now \u2014 stroke:currentColor, so it inherits the theme like everything else. */\n/* Depth comes from LAYERED shadow, not from a border. A single hairline outline plus one flat\n shadow reads as a sticker pasted on the page: a tight contact shadow says \"resting on\", and a\n wide soft one says \"above\". The border is a color-mix of the foreground rather than a fixed line\n so it stays a hairline in both themes instead of a hard edge on dark. */\n.scalebun-bell{ position:relative; display:grid; place-items:center; width:44px; height:44px; padding:0;\n border-radius:50%; border:1px solid color-mix(in srgb, var(--scalebun-fg) 9%, transparent);\n background:var(--scalebun-bg); color:var(--scalebun-fg); cursor:pointer;\n box-shadow:0 1px 2px rgba(0,0,0,.10), 0 6px 18px rgba(0,0,0,.20);\n transition:background .14s ease, box-shadow .14s ease, transform .12s ease; }\n.scalebun-bell:hover{ background:color-mix(in srgb, var(--scalebun-fg) 7%, var(--scalebun-bg));\n box-shadow:0 2px 4px rgba(0,0,0,.12), 0 10px 26px rgba(0,0,0,.26); transform:translateY(-1px); }\n.scalebun-bell:active{ transform:translateY(0) scale(.95); box-shadow:0 1px 2px rgba(0,0,0,.14); }\n.scalebun-bell:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:3px; }\n.scalebun-bell svg{ display:block; width:21px; height:21px; }\n/* The ring in the SURFACE colour is what separates the badge from the bell beneath it \u2014 without it\n the red disc merges into the bell's own outline at this size. The second shadow lifts the badge\n off the bell so the two read as separate objects rather than one flat decal. */\n.scalebun-bell-badge{ position:absolute; top:-4px; inset-inline-end:-4px; min-width:18px; height:18px; padding:0 5px;\n border-radius:999px; background:#e5484d; color:#fff; font-size:11px; font-weight:700; line-height:1;\n display:flex; align-items:center; justify-content:center; font-variant-numeric:tabular-nums;\n box-shadow:0 0 0 2px var(--scalebun-bg), 0 2px 5px rgba(0,0,0,.35); }\n@media (prefers-reduced-motion: reduce){ .scalebun-bell{ transition:none; } .scalebun-bell:hover{ transform:none; } }\n.scalebun-bell-badge[hidden]{ display:none; }\n/* min() not a flat 380px: the panel is wider than a small phone, so on a 320px screen it hung\n off the edge and pushed the page sideways. Same shape as the tour-card fix. */\n.scalebun-center{ position:absolute; top:56px; inset-inline-end:0; width:min(380px, calc(100vw - 32px)); max-height:70vh; display:flex; flex-direction:column;\n background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border); border-radius:14px;\n box-shadow:var(--scalebun-shadow); overflow:hidden; animation:scalebun-pop .14s ease; }\n.scalebun-center[hidden]{ display:none; }\n.scalebun-center-head{ display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid var(--scalebun-border); }\n.scalebun-center-title{ font-weight:700; font-size:14px; flex:1; }\n.scalebun-center-search{ width:100%; box-sizing:border-box; margin:8px 14px 0; width:calc(100% - 28px); padding:7px 10px;\n border:1px solid var(--scalebun-border); border-radius:8px; background:transparent; color:var(--scalebun-fg); font:inherit; font-size:13px; }\n.scalebun-center-tabs{ display:flex; gap:4px; overflow-x:auto; padding:8px 14px; border-bottom:1px solid var(--scalebun-border); }\n.scalebun-tab{ flex:0 0 auto; padding:4px 10px; border-radius:999px; border:1px solid var(--scalebun-border); background:transparent;\n color:var(--scalebun-muted); cursor:pointer; font:inherit; font-size:12px; white-space:nowrap; }\n.scalebun-tab.on{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-color:transparent; }\n.scalebun-tab .c{ margin-left:5px; font-weight:700; }\n.scalebun-center-list{ overflow-y:auto; flex:1; }\n.scalebun-center-empty{ padding:28px 14px; text-align:center; color:var(--scalebun-muted); font-size:13px; }\n.scalebun-item{ display:block; padding:11px 14px; border-bottom:1px solid var(--scalebun-border); cursor:pointer; }\n.scalebun-item:hover{ background:color-mix(in srgb, var(--scalebun-fg) 5%, transparent); }\n.scalebun-item.unread{ background:color-mix(in srgb, var(--scalebun-accent) 7%, transparent); }\n/* Same flex-row minimum as the surfaces sheet: without min-width:0 an unbreakable title forces the\n row wider than the panel, and the panel is fixed-width. */\n.scalebun-item, .scalebun-item-top, .scalebun-item-title, .scalebun-item-prev,\n.scalebun-center-title{ min-width:0; overflow-wrap:anywhere; }\n.scalebun-item-top{ display:flex; align-items:center; gap:8px; }\n.scalebun-item-dot{ width:7px; height:7px; border-radius:50%; background:var(--scalebun-accent); flex:0 0 auto; }\n.scalebun-item-title{ font-weight:600; font-size:13px; flex:1; }\n.scalebun-item-ch{ font-size:10.5px; color:var(--scalebun-muted); text-transform:uppercase; letter-spacing:.04em; }\n.scalebun-item-prev{ font-size:12px; color:var(--scalebun-muted); margin-top:3px; }\n.scalebun-item-acts{ display:flex; gap:8px; margin-top:7px; }\n.scalebun-item-acts button{ background:none; border:0; color:var(--scalebun-muted); cursor:pointer; font:inherit; font-size:11.5px; padding:0; }\n.scalebun-item-acts button:hover{ color:var(--scalebun-fg); text-decoration:underline; }\n";
|
|
12
12
|
export interface CenterController {
|
|
13
13
|
toggle(): void;
|
|
14
14
|
open(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/center/panel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAS3C,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/center/panel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAS3C,eAAO,MAAM,UAAU,0gLA4DtB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,IAAI,IAAI,CAAC;IACf,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,OAAO,CAAC;IAClB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,CA4KvF"}
|
|
@@ -5,12 +5,36 @@ const CHANNEL_LABEL = {
|
|
|
5
5
|
security: 'Security', system: 'System',
|
|
6
6
|
};
|
|
7
7
|
export const CENTER_CSS = `
|
|
8
|
-
.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
/* The launcher was the literal emoji 🔔 as button text. An emoji is a FONT glyph: it renders as a
|
|
9
|
+
different picture on every platform, ignores the theme's foreground colour, sits on its own
|
|
10
|
+
baseline rather than centred, and cannot be sized against the surrounding UI. It is drawn as an
|
|
11
|
+
inline SVG now — stroke:currentColor, so it inherits the theme like everything else. */
|
|
12
|
+
/* Depth comes from LAYERED shadow, not from a border. A single hairline outline plus one flat
|
|
13
|
+
shadow reads as a sticker pasted on the page: a tight contact shadow says "resting on", and a
|
|
14
|
+
wide soft one says "above". The border is a color-mix of the foreground rather than a fixed line
|
|
15
|
+
so it stays a hairline in both themes instead of a hard edge on dark. */
|
|
16
|
+
.scalebun-bell{ position:relative; display:grid; place-items:center; width:44px; height:44px; padding:0;
|
|
17
|
+
border-radius:50%; border:1px solid color-mix(in srgb, var(--scalebun-fg) 9%, transparent);
|
|
18
|
+
background:var(--scalebun-bg); color:var(--scalebun-fg); cursor:pointer;
|
|
19
|
+
box-shadow:0 1px 2px rgba(0,0,0,.10), 0 6px 18px rgba(0,0,0,.20);
|
|
20
|
+
transition:background .14s ease, box-shadow .14s ease, transform .12s ease; }
|
|
21
|
+
.scalebun-bell:hover{ background:color-mix(in srgb, var(--scalebun-fg) 7%, var(--scalebun-bg));
|
|
22
|
+
box-shadow:0 2px 4px rgba(0,0,0,.12), 0 10px 26px rgba(0,0,0,.26); transform:translateY(-1px); }
|
|
23
|
+
.scalebun-bell:active{ transform:translateY(0) scale(.95); box-shadow:0 1px 2px rgba(0,0,0,.14); }
|
|
24
|
+
.scalebun-bell:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:3px; }
|
|
25
|
+
.scalebun-bell svg{ display:block; width:21px; height:21px; }
|
|
26
|
+
/* The ring in the SURFACE colour is what separates the badge from the bell beneath it — without it
|
|
27
|
+
the red disc merges into the bell's own outline at this size. The second shadow lifts the badge
|
|
28
|
+
off the bell so the two read as separate objects rather than one flat decal. */
|
|
29
|
+
.scalebun-bell-badge{ position:absolute; top:-4px; inset-inline-end:-4px; min-width:18px; height:18px; padding:0 5px;
|
|
30
|
+
border-radius:999px; background:#e5484d; color:#fff; font-size:11px; font-weight:700; line-height:1;
|
|
31
|
+
display:flex; align-items:center; justify-content:center; font-variant-numeric:tabular-nums;
|
|
32
|
+
box-shadow:0 0 0 2px var(--scalebun-bg), 0 2px 5px rgba(0,0,0,.35); }
|
|
33
|
+
@media (prefers-reduced-motion: reduce){ .scalebun-bell{ transition:none; } .scalebun-bell:hover{ transform:none; } }
|
|
12
34
|
.scalebun-bell-badge[hidden]{ display:none; }
|
|
13
|
-
|
|
35
|
+
/* min() not a flat 380px: the panel is wider than a small phone, so on a 320px screen it hung
|
|
36
|
+
off the edge and pushed the page sideways. Same shape as the tour-card fix. */
|
|
37
|
+
.scalebun-center{ position:absolute; top:56px; inset-inline-end:0; width:min(380px, calc(100vw - 32px)); max-height:70vh; display:flex; flex-direction:column;
|
|
14
38
|
background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border); border-radius:14px;
|
|
15
39
|
box-shadow:var(--scalebun-shadow); overflow:hidden; animation:scalebun-pop .14s ease; }
|
|
16
40
|
.scalebun-center[hidden]{ display:none; }
|
|
@@ -28,6 +52,10 @@ export const CENTER_CSS = `
|
|
|
28
52
|
.scalebun-item{ display:block; padding:11px 14px; border-bottom:1px solid var(--scalebun-border); cursor:pointer; }
|
|
29
53
|
.scalebun-item:hover{ background:color-mix(in srgb, var(--scalebun-fg) 5%, transparent); }
|
|
30
54
|
.scalebun-item.unread{ background:color-mix(in srgb, var(--scalebun-accent) 7%, transparent); }
|
|
55
|
+
/* Same flex-row minimum as the surfaces sheet: without min-width:0 an unbreakable title forces the
|
|
56
|
+
row wider than the panel, and the panel is fixed-width. */
|
|
57
|
+
.scalebun-item, .scalebun-item-top, .scalebun-item-title, .scalebun-item-prev,
|
|
58
|
+
.scalebun-center-title{ min-width:0; overflow-wrap:anywhere; }
|
|
31
59
|
.scalebun-item-top{ display:flex; align-items:center; gap:8px; }
|
|
32
60
|
.scalebun-item-dot{ width:7px; height:7px; border-radius:50%; background:var(--scalebun-accent); flex:0 0 auto; }
|
|
33
61
|
.scalebun-item-title{ font-weight:600; font-size:13px; flex:1; }
|
|
@@ -48,7 +76,13 @@ export function mountCenterPanel(host, store) {
|
|
|
48
76
|
bell.type = 'button';
|
|
49
77
|
bell.className = 'scalebun-bell';
|
|
50
78
|
bell.setAttribute('aria-label', 'Notifications');
|
|
51
|
-
|
|
79
|
+
// aria-hidden on the glyph: the accessible name is the button's aria-label, and without this a
|
|
80
|
+
// screen reader announces the decorative shape as well.
|
|
81
|
+
bell.innerHTML =
|
|
82
|
+
'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" ' +
|
|
83
|
+
'stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">' +
|
|
84
|
+
'<path d="M18 8.4A6 6 0 0 0 6 8.4c0 6.6-2.6 8.4-2.6 8.4h17.2S18 15 18 8.4"/>' +
|
|
85
|
+
'<path d="M13.7 20.2a2 2 0 0 1-3.4 0"/></svg>';
|
|
52
86
|
const badge = doc.createElement('span');
|
|
53
87
|
badge.className = 'scalebun-bell-badge';
|
|
54
88
|
bell.appendChild(badge);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../../../../src/features/inapp/center/panel.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAyC,MAAM,SAAS,CAAC;AAEjF,MAAM,aAAa,GAAkC;IACnD,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;IACpG,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;IAC9F,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../../../../src/features/inapp/center/panel.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export interface EngineDeps {
|
|
|
15
15
|
apiBaseUrl: string;
|
|
16
16
|
clientKey: string;
|
|
17
17
|
deviceId?: string;
|
|
18
|
+
/** Current session id — scopes the per-session frequency counters. */
|
|
19
|
+
sessionId?: string;
|
|
18
20
|
appVersion?: string;
|
|
19
21
|
/** Identified user id, read fresh per fetch — the backend resolves segment targeting off it. */
|
|
20
22
|
userId?: () => string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAA8D,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3G,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AASlE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAClC,gFAAgF;IAChF,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IACxC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACnC;AAID,qBAAa,WAAW;IAgBV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAfjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAA8D,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3G,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AASlE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAClC,gFAAgF;IAChF,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IACxC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACnC;AAID,qBAAa,WAAW;IAgBV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAfjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkE;IACvF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEK,IAAI,EAAE,UAAU;IAgB7C,sGAAsG;IAChG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAInB,IAAI;IA+BlB,2FAA2F;IAC3F,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7B,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;YAQN,IAAI;YAoBJ,IAAI;IAwClB,OAAO,CAAC,KAAK;IAWb,IAAI,IAAI,IAAI;CAkBb"}
|
|
@@ -22,7 +22,6 @@ const TICK_DEBOUNCE_MS = 120;
|
|
|
22
22
|
export class InAppEngine {
|
|
23
23
|
constructor(deps) {
|
|
24
24
|
this.deps = deps;
|
|
25
|
-
this.freq = new FrequencyStore();
|
|
26
25
|
this.host = new ShadowHost();
|
|
27
26
|
this.slots = new SlotRegistry();
|
|
28
27
|
this.variants = [];
|
|
@@ -31,6 +30,7 @@ export class InAppEngine {
|
|
|
31
30
|
this.tickTimer = null;
|
|
32
31
|
this.started = false;
|
|
33
32
|
this.now = deps.now ?? (() => Date.now());
|
|
33
|
+
this.freq = new FrequencyStore(undefined, deps.sessionId);
|
|
34
34
|
this.transport = new InAppTransport(deps.apiBaseUrl, deps.clientKey);
|
|
35
35
|
this.bus = new TriggerBus(this.now);
|
|
36
36
|
this.budget = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/features/inapp/core/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAChH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAA2C,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,MAAM,EAA8C,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/features/inapp/core/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/core/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/core/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA+EH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAO/D;AAED,qGAAqG;AACrG,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAGrE;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,KAAK,CAAC,CAAgB;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,IAAI,CAAqB;IAEjC,sFAAsF;IACtF,MAAM,IAAI,IAAI;IAmDd,OAAO,CAAC,cAAc;IAMtB;kEAC8D;IAC9D,OAAO,CAAC,UAAU,CAAqB;IACvC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAsBxC,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAM/B,OAAO,CAAC,UAAU;IAKlB;;;;;;;OAOG;IACH,OAAO,IAAI,WAAW,GAAG,SAAS;IAIlC,6EAA6E;IAC7E,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAclC,iEAAiE;IACjE,OAAO,IAAI,IAAI;IAYf,4CAA4C;IAC5C,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAEvC;CACF"}
|
|
@@ -53,7 +53,11 @@ const BASE_CSS = `
|
|
|
53
53
|
/* full-bleed zones: click-transparent by design — see the BASE_CSS docblock */
|
|
54
54
|
.zone-modal, .zone-takeover, .zone-palette{ inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; }
|
|
55
55
|
.zone-anchored{ inset: 0; pointer-events: none; }
|
|
56
|
-
.zone-
|
|
56
|
+
/* 16px in from the corner, like .zone-toast and .zone-launcher — this alone sat at top:0 right:0.
|
|
57
|
+
The layer is position:fixed inset:0, i.e. exactly the viewport, so a zone flush to the corner
|
|
58
|
+
leaves anything that deliberately overhangs nowhere to go: the bell's unread badge sits at a
|
|
59
|
+
negative offset and was being sliced off by the screen edge. */
|
|
60
|
+
.zone-center{ top: 16px; inset-inline-end: 16px; }
|
|
57
61
|
@media (prefers-reduced-motion: reduce){ .layer *{ animation: none !important; transition: none !important; } }
|
|
58
62
|
`;
|
|
59
63
|
/** Theme tokens for light/dark. Applied as CSS vars on the shadow root :host. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../src/features/inapp/core/host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../src/features/inapp/core/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,11 +37,38 @@ export declare function audienceMatch(expr: string | undefined, profile: UserPro
|
|
|
37
37
|
/** Persists per-variant impression/dismiss state so showOnce/cooldown survive reloads. */
|
|
38
38
|
export declare class FrequencyStore {
|
|
39
39
|
private readonly storage;
|
|
40
|
+
private readonly sessionId;
|
|
41
|
+
/** Injectable like `storage` above — keeps the store usable outside a DOM (and testable). */
|
|
42
|
+
private readonly sessionStore;
|
|
40
43
|
private map;
|
|
41
|
-
|
|
44
|
+
private session;
|
|
45
|
+
constructor(storage?: Storage | null, sessionId?: string,
|
|
46
|
+
/** Injectable like `storage` above — keeps the store usable outside a DOM (and testable). */
|
|
47
|
+
sessionStore?: Storage | null);
|
|
48
|
+
/**
|
|
49
|
+
* Session-scoped counters live in sessionStorage, keyed by session id.
|
|
50
|
+
*
|
|
51
|
+
* sessionStorage alone is not the session boundary — it lasts as long as the tab, while a session
|
|
52
|
+
* rolls over after 30 minutes idle — so counts stamped with a different id are discarded.
|
|
53
|
+
*/
|
|
54
|
+
private loadSession;
|
|
55
|
+
private saveSession;
|
|
42
56
|
private load;
|
|
43
57
|
private save;
|
|
44
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Does this variant's frequency rule permit a show right now?
|
|
60
|
+
*
|
|
61
|
+
* Two rules here used to have no effect at all, and together they let a variant re-render on every
|
|
62
|
+
* page load for the life of the campaign:
|
|
63
|
+
*
|
|
64
|
+
* • DISMISSAL. `persistDismiss` is documented as "across sessions vs session-only", but the
|
|
65
|
+
* session-only branch was never implemented — a dismissal with the flag unset suppressed
|
|
66
|
+
* nothing, and `deriveNativeVariant` never sets the flag, so that was every served variant.
|
|
67
|
+
* A dismissal now always holds for the rest of the SESSION, and across sessions when the flag
|
|
68
|
+
* asks for it.
|
|
69
|
+
* • NO RULE. An absent `frequency` returned `true` forever. It is now once per session, which is
|
|
70
|
+
* what the builder's always-written `maxImpressionsPerSession: 1` already promised.
|
|
71
|
+
*/
|
|
45
72
|
canShow(v: Variant, now: number): boolean;
|
|
46
73
|
recordImpression(id: string, now: number): void;
|
|
47
74
|
recordDismiss(id: string, now: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targeting.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/core/targeting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,UAAU,CAAC;AAIvD,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,SAAM,EAAE,EAAE,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAK3G;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAC9C;AAwBD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhF;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAQ3F;AAyCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAGjG;
|
|
1
|
+
{"version":3,"file":"targeting.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/core/targeting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,UAAU,CAAC;AAIvD,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,SAAM,EAAE,EAAE,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAK3G;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8FAA8F;IAC9F,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAC9C;AAwBD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhF;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAQ3F;AAyCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAGjG;AAwBD,0FAA0F;AAC1F,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,YAAY;IAP/B,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,OAAO,CAAuD;gBAGnD,OAAO,GAAE,OAAO,GAAG,IAAoB,EACvC,SAAS,SAAK;IAC/B,6FAA6F;IAC5E,YAAY,GAAE,OAAO,GAAG,IAA2B;IAMtE;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,IAAI;IAQZ;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAiBzC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAY/C,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAY5C,oBAAoB;IACpB,KAAK,IAAI,IAAI;CAMd;AAGD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sGAAsG;AACtG,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,GAAG,iBAAiB,CAW9G"}
|