@scalebun/web 1.2.2 → 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/README.md +0 -2
- 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
|
@@ -93,11 +93,50 @@ export function audienceMatch(expr, profile) {
|
|
|
93
93
|
return expr.split('&&').every((clause) => evalClause(clause, profile));
|
|
94
94
|
}
|
|
95
95
|
const FREQ_KEY = 'scalebun_inapp_freq';
|
|
96
|
+
const FREQ_SESSION_KEY = 'scalebun_inapp_freq_session';
|
|
97
|
+
/**
|
|
98
|
+
* Per-session cap for a variant carrying NO frequency rule. Same reasoning as the legacy engage
|
|
99
|
+
* store: the in-app builder writes `maxImpressionsPerSession: 1` on every campaign, so once per
|
|
100
|
+
* session is what the author was already promised. Applies ONLY when `frequency` is absent — an
|
|
101
|
+
* authored rule is honoured verbatim.
|
|
102
|
+
*/
|
|
103
|
+
const UNCAPPED_MAX_PER_SESSION = 1;
|
|
96
104
|
/** Persists per-variant impression/dismiss state so showOnce/cooldown survive reloads. */
|
|
97
105
|
export class FrequencyStore {
|
|
98
|
-
constructor(storage = safeStorage()
|
|
106
|
+
constructor(storage = safeStorage(), sessionId = '',
|
|
107
|
+
/** Injectable like `storage` above — keeps the store usable outside a DOM (and testable). */
|
|
108
|
+
sessionStore = safeSessionStorage()) {
|
|
99
109
|
this.storage = storage;
|
|
110
|
+
this.sessionId = sessionId;
|
|
111
|
+
this.sessionStore = sessionStore;
|
|
100
112
|
this.map = this.load();
|
|
113
|
+
this.session = this.loadSession();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Session-scoped counters live in sessionStorage, keyed by session id.
|
|
117
|
+
*
|
|
118
|
+
* sessionStorage alone is not the session boundary — it lasts as long as the tab, while a session
|
|
119
|
+
* rolls over after 30 minutes idle — so counts stamped with a different id are discarded.
|
|
120
|
+
*/
|
|
121
|
+
loadSession() {
|
|
122
|
+
try {
|
|
123
|
+
const raw = this.sessionStore?.getItem(FREQ_SESSION_KEY);
|
|
124
|
+
const p = raw ? JSON.parse(raw) : null;
|
|
125
|
+
if (p && p.sid === this.sessionId && p.recs)
|
|
126
|
+
return { sid: this.sessionId, recs: p.recs };
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
/* fall through to a fresh session */
|
|
130
|
+
}
|
|
131
|
+
return { sid: this.sessionId, recs: {} };
|
|
132
|
+
}
|
|
133
|
+
saveSession() {
|
|
134
|
+
try {
|
|
135
|
+
this.sessionStore?.setItem(FREQ_SESSION_KEY, JSON.stringify(this.session));
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
/* degrade to in-memory */
|
|
139
|
+
}
|
|
101
140
|
}
|
|
102
141
|
load() {
|
|
103
142
|
try {
|
|
@@ -116,14 +155,31 @@ export class FrequencyStore {
|
|
|
116
155
|
/* degrade to in-memory */
|
|
117
156
|
}
|
|
118
157
|
}
|
|
119
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* Does this variant's frequency rule permit a show right now?
|
|
160
|
+
*
|
|
161
|
+
* Two rules here used to have no effect at all, and together they let a variant re-render on every
|
|
162
|
+
* page load for the life of the campaign:
|
|
163
|
+
*
|
|
164
|
+
* • DISMISSAL. `persistDismiss` is documented as "across sessions vs session-only", but the
|
|
165
|
+
* session-only branch was never implemented — a dismissal with the flag unset suppressed
|
|
166
|
+
* nothing, and `deriveNativeVariant` never sets the flag, so that was every served variant.
|
|
167
|
+
* A dismissal now always holds for the rest of the SESSION, and across sessions when the flag
|
|
168
|
+
* asks for it.
|
|
169
|
+
* • NO RULE. An absent `frequency` returned `true` forever. It is now once per session, which is
|
|
170
|
+
* what the builder's always-written `maxImpressionsPerSession: 1` already promised.
|
|
171
|
+
*/
|
|
120
172
|
canShow(v, now) {
|
|
121
173
|
const f = v.frequency;
|
|
122
174
|
const rec = this.map[v.id];
|
|
175
|
+
const sess = this.session.recs[v.id];
|
|
176
|
+
if (rec?.dismissed && (v.dismiss?.persistDismiss || sess?.dismissed))
|
|
177
|
+
return false;
|
|
178
|
+
const perSession = f?.maxImpressionsPerSession ?? (f ? 0 : UNCAPPED_MAX_PER_SESSION);
|
|
179
|
+
if (perSession > 0 && (sess?.n ?? 0) >= perSession)
|
|
180
|
+
return false;
|
|
123
181
|
if (!rec)
|
|
124
182
|
return true;
|
|
125
|
-
if (rec.dismissed && v.dismiss?.persistDismiss)
|
|
126
|
-
return false;
|
|
127
183
|
if (f?.showOnce && rec.count > 0)
|
|
128
184
|
return false;
|
|
129
185
|
if (f?.maxImpressions != null && rec.count >= f.maxImpressions)
|
|
@@ -138,6 +194,10 @@ export class FrequencyStore {
|
|
|
138
194
|
rec.lastShown = now;
|
|
139
195
|
this.map[id] = rec;
|
|
140
196
|
this.save();
|
|
197
|
+
const sess = this.session.recs[id] ?? { n: 0 };
|
|
198
|
+
sess.n += 1;
|
|
199
|
+
this.session.recs[id] = sess;
|
|
200
|
+
this.saveSession();
|
|
141
201
|
}
|
|
142
202
|
recordDismiss(id, now) {
|
|
143
203
|
const rec = this.map[id] ?? { count: 0, lastShown: 0 };
|
|
@@ -145,11 +205,17 @@ export class FrequencyStore {
|
|
|
145
205
|
rec.lastShown = now;
|
|
146
206
|
this.map[id] = rec;
|
|
147
207
|
this.save();
|
|
208
|
+
const sess = this.session.recs[id] ?? { n: 0 };
|
|
209
|
+
sess.dismissed = true;
|
|
210
|
+
this.session.recs[id] = sess;
|
|
211
|
+
this.saveSession();
|
|
148
212
|
}
|
|
149
213
|
/** Dev/QA reset. */
|
|
150
214
|
clear() {
|
|
151
215
|
this.map = {};
|
|
152
216
|
this.save();
|
|
217
|
+
this.session = { sid: this.sessionId, recs: {} };
|
|
218
|
+
this.saveSession();
|
|
153
219
|
}
|
|
154
220
|
}
|
|
155
221
|
/** Does the variant pass targeting + frequency for this context? (Triggers gate *when*, not *if*.) */
|
|
@@ -178,4 +244,12 @@ function safeStorage() {
|
|
|
178
244
|
return null;
|
|
179
245
|
}
|
|
180
246
|
}
|
|
247
|
+
function safeSessionStorage() {
|
|
248
|
+
try {
|
|
249
|
+
return typeof sessionStorage !== 'undefined' ? sessionStorage : null;
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
181
255
|
//# sourceMappingURL=targeting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targeting.js","sourceRoot":"","sources":["../../../../src/features/inapp/core/targeting.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"targeting.js","sourceRoot":"","sources":["../../../../src/features/inapp/core/targeting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coachmark.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/coachmark.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAalE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"coachmark.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/coachmark.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAalE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CAwFtE"}
|
|
@@ -46,8 +46,11 @@ export function coachmarkSurface(ctx) {
|
|
|
46
46
|
? new LiveAnchor({
|
|
47
47
|
spec: specFromSelector(selector),
|
|
48
48
|
size: () => {
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
// offsetWidth/Height, NOT getBoundingClientRect: the rect includes TRANSFORMS, and every
|
|
50
|
+
// anchored surface animates in with a scale. Measuring mid-animation placed the card from
|
|
51
|
+
// a size it was about to stop having, so it painted in the wrong spot and visibly jumped
|
|
52
|
+
// when the entrance finished — measured at ~150ms of wrong position on a tour step.
|
|
53
|
+
return { width: card.offsetWidth || 300, height: card.offsetHeight || 120 };
|
|
51
54
|
},
|
|
52
55
|
preferred: { side: preferredSide(ctx), align: 'center' },
|
|
53
56
|
offset: variant.surfaceOptions?.offset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coachmark.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/coachmark.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"coachmark.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/coachmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotspot.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/hotspot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAalE,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"hotspot.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/hotspot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAalE,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CAmFpE"}
|
|
@@ -50,8 +50,11 @@ export function hotspotSurface(ctx) {
|
|
|
50
50
|
? new LiveAnchor({
|
|
51
51
|
spec: specFromSelector(selector),
|
|
52
52
|
size: () => {
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
// offsetWidth/Height, NOT getBoundingClientRect: the rect includes TRANSFORMS, and every
|
|
54
|
+
// anchored surface animates in with a scale. Measuring mid-animation placed the card from
|
|
55
|
+
// a size it was about to stop having, so it painted in the wrong spot and visibly jumped
|
|
56
|
+
// when the entrance finished — measured at ~150ms of wrong position on a tour step.
|
|
57
|
+
return { width: card.offsetWidth || 240, height: card.offsetHeight || 90 };
|
|
55
58
|
},
|
|
56
59
|
preferred: { side: preferredSide(ctx), align: 'center' },
|
|
57
60
|
hooks: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotspot.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/hotspot.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hotspot.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/hotspot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/inline.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/inline.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAiB9E,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,GAAE,aAAkB,GAAG,aAAa,CAyDlI"}
|
|
@@ -9,12 +9,18 @@ import { applyThemeVars } from '../core/host.js';
|
|
|
9
9
|
import { BLOCKS_CSS } from '../blocks/styles.js';
|
|
10
10
|
import { buildBlockContext, observeView } from './surface.js';
|
|
11
11
|
import { renderBlocks } from '../blocks/blocks.js';
|
|
12
|
+
/* This surface mounts into its OWN shadow root and adopts BLOCKS_CSS + this sheet only — never
|
|
13
|
+
SURFACES_CSS. So the close-button/heading rules that fixed every other surface cannot reach it,
|
|
14
|
+
and the fix has to be repeated here. That isolation is why inline was the single surface still
|
|
15
|
+
overlapping after the others were done: 70 of the 70 remaining findings. */
|
|
12
16
|
const INLINE_CSS = `
|
|
13
17
|
:host{ display:block; }
|
|
14
18
|
.scalebun-inline{ position:relative; background:var(--scalebun-bg); color:var(--scalebun-fg);
|
|
15
19
|
border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); padding:18px; }
|
|
16
|
-
|
|
20
|
+
/* inset-inline-end, not right: in RTL the button belongs on the side the text now ends on. */
|
|
21
|
+
.scalebun-inline .scalebun-x{ position:absolute; top:8px; inset-inline-end:8px; background:none; border:0;
|
|
17
22
|
color:var(--scalebun-muted); cursor:pointer; font-size:16px; border-radius:6px; }
|
|
23
|
+
.scalebun-inline .scalebun-h{ padding-inline-end:24px; }
|
|
18
24
|
`;
|
|
19
25
|
export function mountInline(registry, variant, hooks, opts = {}) {
|
|
20
26
|
const slotName = variant.surfaceOptions?.slot ?? 'default';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/inline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,cAAc,EAAkB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAqB,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"inline.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/inline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/popover.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAclE,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/popover.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAclE,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CA4DpE"}
|
|
@@ -36,8 +36,11 @@ export function popoverSurface(ctx) {
|
|
|
36
36
|
? new LiveAnchor({
|
|
37
37
|
spec: specFromSelector(selector),
|
|
38
38
|
size: () => {
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
// offsetWidth/Height, NOT getBoundingClientRect: the rect includes TRANSFORMS, and every
|
|
40
|
+
// anchored surface animates in with a scale. Measuring mid-animation placed the card from
|
|
41
|
+
// a size it was about to stop having, so it painted in the wrong spot and visibly jumped
|
|
42
|
+
// when the entrance finished — measured at ~150ms of wrong position on a tour step.
|
|
43
|
+
return { width: root.offsetWidth || 320, height: root.offsetHeight || 120 };
|
|
41
44
|
},
|
|
42
45
|
preferred: { side: preferredSide(ctx), align: 'center' },
|
|
43
46
|
offset: variant.surfaceOptions?.offset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/popover.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,SAAS,cAAc,CAAC,GAAoB;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;AAC5I,CAAC;AAED,SAAS,aAAa,CAAC,GAAoB;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC;IAChD,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC;IACpC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC;IAC9C,IAAI,IAAI;QAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,IAAI,IAAI,CAAC;IAE5C,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;QAClB,CAAC,CAAC,SAAS,GAAG,2BAA2B,CAAC;QAC1C,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC;QAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,IAAI,UAAU,CAAC;YACb,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC;YAChC,IAAI,EAAE,GAAG,EAAE;gBACT,
|
|
1
|
+
{"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/popover.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* (CSP-safe); colors from the theme vars; animations opacity/transform-only and auto-disabled under
|
|
4
4
|
* prefers-reduced-motion by the host base sheet.
|
|
5
5
|
*/
|
|
6
|
-
export declare const SURFACES_CSS = "\n/* shared close button */\n.scalebun-x{ background:none; border:0; color:var(--scalebun-muted); cursor:pointer; font-size:16px; line-height:1;\n padding:4px 6px; border-radius:6px; }\n.scalebun-x:hover{ background:color-mix(in srgb, var(--scalebun-fg) 12%, transparent); color:var(--scalebun-fg); }\n.scalebun-x:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n\n/* --scalebun-anim-in carries the variant's AUTHORED entrance animation, mapped from a fixed\n dictionary in richInApp (never interpolated). Each use falls back to that surface's own\n long-standing default, so a variant that authored nothing renders byte-identically to before.\n The reduced-motion rule in host.ts is marked important and still wins over anything set here. */\n\n/* S9 \u2014 banner */\n.scalebun-banner{ display:flex; align-items:center; gap:12px; padding:10px 16px;\n background:var(--scalebun-bg); color:var(--scalebun-fg); border-bottom:1px solid var(--scalebun-border);\n box-shadow:var(--scalebun-shadow); animation:var(--scalebun-anim-in, scalebun-slidedown .18s ease); }\n.scalebun-banner-bottom{ border-bottom:0; border-top:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }\n.scalebun-banner .scalebun-body{ flex:1; display:flex; align-items:center; gap:12px; min-width:0; }\n.scalebun-banner .scalebun-body>*{ margin:0; }\n.scalebun-banner .scalebun-cta-row{ margin:0; }\n@keyframes scalebun-slidedown{ from{ transform:translateY(-100%); } to{ transform:none; } }\n\n/* S10 \u2014 toast */\n.scalebun-toast{ background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:12px 14px; max-width:340px;\n display:flex; gap:10px; align-items:flex-start; animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }\n.scalebun-toast .scalebun-body{ flex:1; min-width:0; }\n.scalebun-toast .scalebun-body>*:last-child{ margin-bottom:0; }\n@keyframes scalebun-slideup{ from{ transform:translateY(8px); opacity:0; } to{ transform:none; opacity:1; } }\n\n/* S1 \u2014 modal */\n/* pointer-events:auto is load-bearing \u2014 the zone is click-transparent (see host.ts BASE_CSS docblock) */\n.scalebun-backdrop{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;\n background:rgba(15,18,26,.55); padding:24px; animation:scalebun-fade .15s ease; }\n.scalebun-modal-card{ position:relative; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:22px; width:100%; max-height:calc(100vh - 48px); overflow:auto; animation:var(--scalebun-anim-in, scalebun-pop .16s ease); }\n.scalebun-modal-card[data-size=\"sm\"]{ max-width:360px; }\n.scalebun-modal-card[data-size=\"md\"]{ max-width:460px; }\n.scalebun-modal-card[data-size=\"lg\"]{ max-width:620px; }\n.scalebun-modal-card[data-size=\"xl\"]{ max-width:820px; }\n.scalebun-modal-x{ position:absolute; top:10px; right:10px; }\n@keyframes scalebun-fade{ from{ opacity:0; } to{ opacity:1; } }\n@keyframes scalebun-pop{ from{ transform:scale(.96); opacity:0; } to{ transform:none; opacity:1; } }\n\n/* S2 \u2014 slide-over */\n.scalebun-slideover{ position:absolute; top:0; bottom:0; width:380px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n box-shadow:var(--scalebun-shadow); display:flex; flex-direction:column; overflow:hidden; }\n.scalebun-slideover-right{ right:0; border-left:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slide-in-r .2s ease); }\n.scalebun-slideover-left{ left:0; border-right:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slide-in-l .2s ease); }\n/* BOTTOM SHEET. bottom_sheet is one of the seven legacy layouts and richInApp has always mapped it\n to slideover with placement 'bottom' \u2014 but only -right/-left existed, and the surface treated any\n non-'left' placement as right. So every bottom-sheet campaign rendered as a full-height RIGHT panel.\n Overrides the base's top/bottom/width, which describe a vertical edge panel. */\n.scalebun-slideover-bottom{ top:auto; left:0; right:0; bottom:0; width:auto; max-height:82vh;\n border-top:1px solid var(--scalebun-border); border-radius:16px 16px 0 0;\n animation:var(--scalebun-anim-in, scalebun-slideup .22s ease); }\n.scalebun-so-header{ display:flex; justify-content:flex-end; gap:4px; padding:8px 8px 0; }\n/* A grab handle reads as \"this came from the bottom edge\" \u2014 the affordance a sheet has and a side\n panel doesn't. Decorative only; the \u00D7 button remains the accessible dismiss. */\n.scalebun-slideover-bottom .scalebun-so-header::before{ content:''; position:absolute; top:8px;\n left:50%; transform:translateX(-50%); width:36px; height:4px; border-radius:99px;\n background:var(--scalebun-border); }\n.scalebun-slideover-bottom .scalebun-so-header{ padding-top:16px; }\n.scalebun-so-body{ padding:8px 18px 18px; overflow:auto; flex:1; }\n.scalebun-so-resize{ position:absolute; top:0; bottom:0; width:6px; cursor:ew-resize; }\n.scalebun-slideover-right .scalebun-so-resize{ left:0; }\n.scalebun-slideover-left .scalebun-so-resize{ right:0; }\n.scalebun-so-resize:hover{ background:color-mix(in srgb, var(--scalebun-accent) 40%, transparent); }\n@keyframes scalebun-slide-in-r{ from{ transform:translateX(100%); } to{ transform:none; } }\n@keyframes scalebun-slide-in-l{ from{ transform:translateX(-100%); } to{ transform:none; } }\n\n/* S4 \u2014 anchored popover */\n.scalebun-popover{ position:absolute; background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:14px 16px; max-width:320px;\n animation:scalebun-pop .14s ease; }\n.scalebun-pop-body>*:last-child{ margin-bottom:0; }\n.scalebun-pop-x{ position:absolute; top:6px; right:6px; }\n\n/* S5 \u2014 coachmark + spotlight */\n.scalebun-coach-spot{ position:fixed; border-radius:8px; box-shadow:0 0 0 9999px rgba(12,10,20,.55);\n pointer-events:none; transition:top .18s ease,left .18s ease,width .18s ease,height .18s ease; }\n.scalebun-coachmark{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:14px 16px; max-width:300px; animation:scalebun-pop .14s ease; }\n\n/* S6 \u2014 product tour */\n.scalebun-tour-card{ max-width:320px; }\n.scalebun-tour-center{ top:50%; left:50%; transform:translate(-50%,-50%); }\n.scalebun-tour-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:14px; }\n.scalebun-tour-prog{ font-size:11.5px; color:var(--scalebun-muted); font-variant-numeric:tabular-nums; }\n.scalebun-tour-btns{ display:flex; gap:6px; }\n.scalebun-tour-btns .scalebun-btn{ padding:6px 12px; font-size:12.5px; }\n\n/* S7 \u2014 hotspot / beacon */\n.scalebun-beacon{ position:absolute; width:14px; height:14px; padding:0; border:0; border-radius:50%;\n background:var(--scalebun-accent); cursor:pointer; pointer-events:auto; box-shadow:0 0 0 4px color-mix(in srgb, var(--scalebun-accent) 30%, transparent); }\n.scalebun-beacon::after{ content:''; position:absolute; inset:0; border-radius:50%; background:var(--scalebun-accent);\n animation:scalebun-pulse 1.8s ease-out infinite; }\n.scalebun-beacon:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:3px; }\n@keyframes scalebun-pulse{ 0%{ transform:scale(1); opacity:.6; } 100%{ transform:scale(2.6); opacity:0; } }\n.scalebun-beacon-card{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:12px 14px; max-width:260px; font-size:13px; }\n.scalebun-beacon-card[hidden]{ display:none; }\n\n/* S16 \u2014 toolbar / menu callout */\n.scalebun-toolbar-callout{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:10px; box-shadow:var(--scalebun-shadow);\n padding:10px 30px 10px 12px; max-width:240px; font-size:13px; animation:scalebun-pop .14s ease; }\n\n/* S13 \u2014 command palette */\n.scalebun-palette-backdrop{ position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:center; pointer-events:auto;\n padding-top:12vh; background:rgba(15,18,26,.45); }\n.scalebun-palette{ width:min(560px, 92%); background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:14px; box-shadow:var(--scalebun-shadow); overflow:hidden; animation:scalebun-pop .14s ease; }\n.scalebun-palette-input{ width:100%; box-sizing:border-box; border:0; border-bottom:1px solid var(--scalebun-border);\n padding:16px 18px; font:inherit; font-size:15px; background:transparent; color:var(--scalebun-fg); outline:none; }\n.scalebun-palette-list{ list-style:none; margin:0; padding:6px; max-height:50vh; overflow-y:auto; }\n.scalebun-palette-item{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:8px; cursor:pointer; }\n.scalebun-palette-item.active{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); }\n.scalebun-palette-label{ flex:1; font-size:13.5px; }\n.scalebun-palette-hint{ font-size:11.5px; opacity:.7; }\n.scalebun-palette-empty{ padding:16px; text-align:center; color:var(--scalebun-muted); font-size:13px; }\n\n/* S3 \u2014 docked panel + AI shell */\n.scalebun-panel{ position:absolute; top:0; bottom:0; width:360px; display:flex; flex-direction:column;\n background:var(--scalebun-bg); color:var(--scalebun-fg); box-shadow:var(--scalebun-shadow); }\n.scalebun-panel-right{ right:0; border-left:1px solid var(--scalebun-border); }\n.scalebun-panel-left{ left:0; border-right:1px solid var(--scalebun-border); }\n.scalebun-panel-head{ display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid var(--scalebun-border); }\n.scalebun-panel-title{ flex:1; font-weight:700; font-size:14px; }\n.scalebun-panel-thread{ flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; }\n.scalebun-bubble{ max-width:85%; padding:9px 12px; border-radius:12px; font-size:13.5px; line-height:1.45; white-space:pre-wrap; }\n.scalebun-bubble-user{ align-self:flex-end; background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-bottom-right-radius:4px; }\n.scalebun-bubble-assistant{ align-self:flex-start; background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); border-bottom-left-radius:4px; }\n.scalebun-bubble.streaming::after{ content:'\u258D'; animation:scalebun-blink 1s step-end infinite; }\n@keyframes scalebun-blink{ 50%{ opacity:0; } }\n.scalebun-panel-composer{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--scalebun-border); align-items:flex-end; }\n.scalebun-panel-input{ flex:1; resize:none; border:1px solid var(--scalebun-border); border-radius:10px; padding:9px 11px;\n font:inherit; font-size:13.5px; background:transparent; color:var(--scalebun-fg); max-height:120px; }\n.scalebun-panel-send{ padding:9px 14px; }\n\n/* S14 \u2014 checklist / onboarding widget */\n.scalebun-checklist{ position:absolute; bottom:16px; right:16px; width:320px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:14px; box-shadow:var(--scalebun-shadow); padding:14px 16px; }\n.scalebun-checklist.complete{ border-color:var(--scalebun-accent); }\n.scalebun-cl-head{ display:flex; align-items:center; gap:6px; margin-bottom:10px; }\n.scalebun-cl-title{ flex:1; font-weight:700; font-size:14px; }\n.scalebun-cl-dock{ font-size:14px; }\n.scalebun-cl-bar{ height:6px; border-radius:3px; background:color-mix(in srgb, var(--scalebun-fg) 10%, transparent); overflow:hidden; }\n.scalebun-cl-fill{ height:100%; background:var(--scalebun-accent); transition:width .25s ease; }\n.scalebun-cl-count{ font-size:11.5px; color:var(--scalebun-muted); margin:6px 0 10px; }\n.scalebun-checklist.collapsed .scalebun-cl-bar, .scalebun-checklist.collapsed .scalebun-cl-count, .scalebun-checklist.collapsed .scalebun-cl-list{ display:none; }\n.scalebun-cl-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }\n.scalebun-cl-item{ display:flex; align-items:center; gap:10px; padding:6px 4px; font-size:13.5px; }\n.scalebun-cl-item.done .scalebun-cl-label{ color:var(--scalebun-muted); text-decoration:line-through; }\n.scalebun-cl-check{ width:20px; height:20px; flex:0 0 auto; border-radius:6px; border:1.5px solid var(--scalebun-border);\n background:transparent; color:var(--scalebun-accent-fg); cursor:pointer; font-size:12px; line-height:1; }\n.scalebun-cl-item.done .scalebun-cl-check{ background:var(--scalebun-accent); border-color:var(--scalebun-accent); }\n.scalebun-cl-label{ flex:1; }\n\n/* S15 \u2014 full-page takeover */\n.scalebun-takeover{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;\n background:var(--scalebun-bg); color:var(--scalebun-fg); padding:32px; overflow:auto; animation:var(--scalebun-anim-in, scalebun-fade .2s ease); }\n.scalebun-takeover-inner{ position:relative; max-width:640px; width:100%; text-align:center; }\n.scalebun-takeover-x{ position:absolute; top:-8px; right:-8px; }\n\n/* S12 \u2014 floating launcher */\n.scalebun-launcher{ position:absolute; bottom:0; right:0; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }\n.scalebun-launcher-fab{ width:52px; height:52px; border-radius:50%; border:0; background:var(--scalebun-accent); color:var(--scalebun-accent-fg);\n font-size:22px; cursor:pointer; box-shadow:var(--scalebun-shadow); }\n.scalebun-launcher-menu{ display:flex; flex-direction:column; gap:2px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:12px; box-shadow:var(--scalebun-shadow); padding:6px; min-width:180px;\n animation:scalebun-pop .14s ease; }\n.scalebun-launcher-menu[hidden]{ display:none; }\n.scalebun-launcher-item{ text-align:left; background:none; border:0; color:var(--scalebun-fg); cursor:pointer; font:inherit;\n font-size:13.5px; padding:9px 12px; border-radius:8px; }\n.scalebun-launcher-item:hover{ background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); }\n";
|
|
6
|
+
export declare const SURFACES_CSS = "\n/* shared close button */\n.scalebun-x{ background:none; border:0; color:var(--scalebun-muted); cursor:pointer; font-size:16px; line-height:1;\n padding:4px 6px; border-radius:6px; }\n.scalebun-x:hover{ background:color-mix(in srgb, var(--scalebun-fg) 12%, transparent); color:var(--scalebun-fg); }\n.scalebun-x:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:2px; }\n\n/* --scalebun-anim-in carries the variant's AUTHORED entrance animation, mapped from a fixed\n dictionary in richInApp (never interpolated). Each use falls back to that surface's own\n long-standing default, so a variant that authored nothing renders byte-identically to before.\n The reduced-motion rule in host.ts is marked important and still wins over anything set here. */\n\n/* S9 \u2014 banner */\n/* WRAPS rather than overflows. A banner carrying a heading, body, a stat and a CTA measures 407px of\n content, so on any phone it ran past the screen edge and took the page's horizontal scroll with it\n \u2014 the one remaining defect that reproduced with the catalog's OWN copy, not stressed content.\n Wrapping to a second row was chosen over dropping the stat or scrolling horizontally: nothing is\n lost, and a banner is already variable-height, so no other surface has to change to allow it. */\n.scalebun-banner{ display:flex; align-items:center; gap:12px; padding:10px 16px; flex-wrap:wrap;\n background:var(--scalebun-bg); color:var(--scalebun-fg); border-bottom:1px solid var(--scalebun-border);\n box-shadow:var(--scalebun-shadow); animation:var(--scalebun-anim-in, scalebun-slidedown .18s ease); }\n.scalebun-banner-bottom{ border-bottom:0; border-top:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }\n.scalebun-banner .scalebun-body{ flex:1; display:flex; align-items:center; gap:12px; min-width:0; flex-wrap:wrap; }\n.scalebun-banner .scalebun-body>*{ margin:0; }\n.scalebun-banner .scalebun-cta-row{ margin:0; }\n@keyframes scalebun-slidedown{ from{ transform:translateY(-100%); } to{ transform:none; } }\n\n/* S10 \u2014 toast */\n.scalebun-toast{ background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:12px 14px; max-width:340px;\n display:flex; gap:10px; align-items:flex-start; animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }\n.scalebun-toast .scalebun-body{ flex:1; min-width:0; }\n.scalebun-toast .scalebun-body>*:last-child{ margin-bottom:0; }\n@keyframes scalebun-slideup{ from{ transform:translateY(8px); opacity:0; } to{ transform:none; opacity:1; } }\n\n/* S1 \u2014 modal */\n/* pointer-events:auto is load-bearing \u2014 the zone is click-transparent (see host.ts BASE_CSS docblock) */\n.scalebun-backdrop{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;\n background:rgba(15,18,26,.55); padding:24px; animation:scalebun-fade .15s ease; }\n.scalebun-modal-card{ position:relative; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:22px; width:100%; max-height:calc(100vh - 48px); overflow:auto; animation:var(--scalebun-anim-in, scalebun-pop .16s ease); }\n.scalebun-modal-card[data-size=\"sm\"]{ max-width:360px; }\n.scalebun-modal-card[data-size=\"md\"]{ max-width:460px; }\n.scalebun-modal-card[data-size=\"lg\"]{ max-width:620px; }\n.scalebun-modal-card[data-size=\"xl\"]{ max-width:820px; }\n.scalebun-modal-x{ position:absolute; top:10px; inset-inline-end:10px; }\n@keyframes scalebun-fade{ from{ opacity:0; } to{ opacity:1; } }\n@keyframes scalebun-pop{ from{ transform:scale(.96); opacity:0; } to{ transform:none; opacity:1; } }\n\n/* S2 \u2014 slide-over */\n.scalebun-slideover{ position:absolute; top:0; bottom:0; width:380px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n box-shadow:var(--scalebun-shadow); display:flex; flex-direction:column; overflow:hidden; }\n.scalebun-slideover-right{ right:0; border-left:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slide-in-r .2s ease); }\n.scalebun-slideover-left{ left:0; border-right:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slide-in-l .2s ease); }\n/* BOTTOM SHEET. bottom_sheet is one of the seven legacy layouts and richInApp has always mapped it\n to slideover with placement 'bottom' \u2014 but only -right/-left existed, and the surface treated any\n non-'left' placement as right. So every bottom-sheet campaign rendered as a full-height RIGHT panel.\n Overrides the base's top/bottom/width, which describe a vertical edge panel. */\n.scalebun-slideover-bottom{ top:auto; left:0; right:0; bottom:0; width:auto; max-height:82vh;\n border-top:1px solid var(--scalebun-border); border-radius:16px 16px 0 0;\n animation:var(--scalebun-anim-in, scalebun-slideup .22s ease); }\n.scalebun-so-header{ display:flex; justify-content:flex-end; gap:4px; padding:8px 8px 0; }\n/* A grab handle reads as \"this came from the bottom edge\" \u2014 the affordance a sheet has and a side\n panel doesn't. Decorative only; the \u00D7 button remains the accessible dismiss. */\n.scalebun-slideover-bottom .scalebun-so-header::before{ content:''; position:absolute; top:8px;\n left:50%; transform:translateX(-50%); width:36px; height:4px; border-radius:99px;\n background:var(--scalebun-border); }\n.scalebun-slideover-bottom .scalebun-so-header{ padding-top:16px; }\n.scalebun-so-body{ padding:8px 18px 18px; overflow:auto; flex:1; }\n.scalebun-so-resize{ position:absolute; top:0; bottom:0; width:6px; cursor:ew-resize; }\n.scalebun-slideover-right .scalebun-so-resize{ left:0; }\n.scalebun-slideover-left .scalebun-so-resize{ right:0; }\n.scalebun-so-resize:hover{ background:color-mix(in srgb, var(--scalebun-accent) 40%, transparent); }\n@keyframes scalebun-slide-in-r{ from{ transform:translateX(100%); } to{ transform:none; } }\n@keyframes scalebun-slide-in-l{ from{ transform:translateX(-100%); } to{ transform:none; } }\n\n/* S4 \u2014 anchored popover */\n.scalebun-popover{ position:absolute; background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:14px 16px; max-width:320px;\n animation:scalebun-pop .14s ease; }\n.scalebun-pop-body>*:last-child{ margin-bottom:0; }\n.scalebun-pop-x{ position:absolute; top:6px; inset-inline-end:6px; }\n/* A close button is out of flow, so nothing stops a heading running underneath it \u2014 the \u00D7 then\n lands on a word of the title. Reserving the space is the same thing .scalebun-toolbar-callout\n already did with its right padding. Every surface that pairs an absolute \u00D7 with a heading needs\n it, which the stressed sweep put at nine of them, not the three the authored copy revealed.\n\n LOGICAL, not physical. This was padding-right, correct only while text runs left-to-right: in\n RTL a line ENDS on the left and STARTS under the close button, so the reserved gap sat on the\n side the text was leaving and the \u00D7 landed on the first word instead of the last. The buttons\n use inset-inline-end for the same reason. Caught by sweeping the catalog in Arabic. */\n.scalebun-popover .scalebun-h,\n.scalebun-coachmark .scalebun-h,\n.scalebun-modal-card .scalebun-h,\n.scalebun-inline .scalebun-h,\n.scalebun-toast .scalebun-h,\n.scalebun-banner .scalebun-h,\n.scalebun-takeover-inner .scalebun-h,\n.scalebun-toolbar-callout .scalebun-h{ padding-inline-end:24px; }\n\n/* S5 \u2014 coachmark + spotlight */\n.scalebun-coach-spot{ position:fixed; border-radius:8px; box-shadow:0 0 0 9999px rgba(12,10,20,.55);\n pointer-events:none; transition:top .18s ease,left .18s ease,width .18s ease,height .18s ease; }\n.scalebun-coachmark{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:14px 16px; max-width:300px; animation:scalebun-pop .14s ease; }\n\n/* S6 \u2014 product tour. The same three phone-only defects fixed in coach/overlay.ts, which carries the\n full reasoning: width is EXPLICIT because a fixed box with left:50% and no width shrink-wraps to\n half the viewport; the heading reserves the space .scalebun-pop-x is absolutely positioned in; and\n the nav's items are flex:none so an overflowing footer wraps intact instead of collapsing the\n progress counter into a one-character column. */\n.scalebun-tour-card{ width:min(320px, calc(100vw - 32px)); }\n.scalebun-tour-card .scalebun-h{ padding-right:20px; }\n/* Centred by transform, and ANIMATED by transform \u2014 so the entrance clobbered the centring.\n .scalebun-coachmark carries animation:scalebun-pop, whose keyframes set transform:scale(.96) then\n transform:none. An animated property REPLACES the declared one for the whole run, so for the\n animation's 140ms this card was drawn at left:50%/top:50% with NO translate \u2014 sitting half its own\n width down and to the right \u2014 then snapped into place when the animation finished. That is the\n visible jump on opening a tour and on every Next.\n The fix keeps the translate inside the keyframes so the centring survives the run. The individual\n translate property would be tidier, but it silently breaks centring where unsupported, and a card\n that never centres is worse than one that briefly animates. */\n.scalebun-tour-center{ top:50%; left:50%; transform:translate(-50%,-50%); animation-name:scalebun-pop-center; }\n@keyframes scalebun-pop-center{\n from{ transform:translate(-50%,-50%) scale(.96); opacity:0; }\n to{ transform:translate(-50%,-50%); opacity:1; } }\n.scalebun-tour-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:14px; flex-wrap:wrap; }\n.scalebun-tour-prog{ font-size:11.5px; color:var(--scalebun-muted); font-variant-numeric:tabular-nums; flex:none; white-space:nowrap; }\n.scalebun-tour-btns{ display:flex; gap:6px; flex:none; }\n.scalebun-tour-btns .scalebun-btn{ padding:6px 12px; font-size:12.5px; }\n\n/* S7 \u2014 hotspot / beacon */\n.scalebun-beacon{ position:absolute; width:14px; height:14px; padding:0; border:0; border-radius:50%;\n background:var(--scalebun-accent); cursor:pointer; pointer-events:auto; box-shadow:0 0 0 4px color-mix(in srgb, var(--scalebun-accent) 30%, transparent); }\n.scalebun-beacon::after{ content:''; position:absolute; inset:0; border-radius:50%; background:var(--scalebun-accent);\n animation:scalebun-pulse 1.8s ease-out infinite; }\n.scalebun-beacon:focus-visible{ outline:2px solid var(--scalebun-accent); outline-offset:3px; }\n@keyframes scalebun-pulse{ 0%{ transform:scale(1); opacity:.6; } 100%{ transform:scale(2.6); opacity:0; } }\n.scalebun-beacon-card{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);\n padding:12px 14px; max-width:260px; font-size:13px; }\n.scalebun-beacon-card[hidden]{ display:none; }\n\n/* S16 \u2014 toolbar / menu callout */\n.scalebun-toolbar-callout{ position:absolute; pointer-events:auto; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:10px; box-shadow:var(--scalebun-shadow);\n padding:10px 30px 10px 12px; max-width:240px; font-size:13px; animation:scalebun-pop .14s ease; }\n\n/* S13 \u2014 command palette */\n.scalebun-palette-backdrop{ position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:center; pointer-events:auto;\n padding-top:12vh; background:rgba(15,18,26,.45); }\n.scalebun-palette{ width:min(560px, 92%); background:var(--scalebun-bg); color:var(--scalebun-fg); border:1px solid var(--scalebun-border);\n border-radius:14px; box-shadow:var(--scalebun-shadow); overflow:hidden; animation:scalebun-pop .14s ease; }\n.scalebun-palette-input{ width:100%; box-sizing:border-box; border:0; border-bottom:1px solid var(--scalebun-border);\n padding:16px 18px; font:inherit; font-size:15px; background:transparent; color:var(--scalebun-fg); outline:none; }\n.scalebun-palette-list{ list-style:none; margin:0; padding:6px; max-height:50vh; overflow-y:auto; }\n.scalebun-palette-item{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:8px; cursor:pointer; }\n.scalebun-palette-item.active{ background:var(--scalebun-accent); color:var(--scalebun-accent-fg); }\n.scalebun-palette-label{ flex:1; font-size:13.5px; }\n.scalebun-palette-hint{ font-size:11.5px; opacity:.7; }\n.scalebun-palette-empty{ padding:16px; text-align:center; color:var(--scalebun-muted); font-size:13px; }\n\n/* Every flex ROW below holds text, and a flex item's min-width defaults to its CONTENT \u2014 so a single\n unbreakable run (a support URL, a deploy hash) forces the row wider than the surface that contains\n it, no matter that the text itself is allowed to wrap. This is the same defect already fixed on\n .scalebun-cta-row; these are the remaining rows, and between them they were 84 of the sweep's last\n 112 findings. The text children already carry overflow-wrap from BLOCKS_CSS \u2014 this is what lets\n them actually use it. */\n.scalebun-panel-head, .scalebun-panel-title, .scalebun-cl-head, .scalebun-cl-title,\n.scalebun-cl-item, .scalebun-cl-label, .scalebun-palette-item, .scalebun-code-bar,\n.scalebun-code-lang, .scalebun-code-copy{ min-width:0; overflow-wrap:anywhere; }\n\n/* S3 \u2014 docked panel + AI shell */\n.scalebun-panel{ position:absolute; top:0; bottom:0; width:360px; display:flex; flex-direction:column;\n background:var(--scalebun-bg); color:var(--scalebun-fg); box-shadow:var(--scalebun-shadow); }\n.scalebun-panel-right{ right:0; border-left:1px solid var(--scalebun-border); }\n.scalebun-panel-left{ left:0; border-right:1px solid var(--scalebun-border); }\n.scalebun-panel-head{ display:flex; align-items:center; gap:8px; padding:12px 14px; border-bottom:1px solid var(--scalebun-border); }\n.scalebun-panel-title{ flex:1; font-weight:700; font-size:14px; }\n.scalebun-panel-thread{ flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; }\n.scalebun-bubble{ max-width:85%; padding:9px 12px; border-radius:12px; font-size:13.5px; line-height:1.45; white-space:pre-wrap; }\n.scalebun-bubble-user{ align-self:flex-end; background:var(--scalebun-accent); color:var(--scalebun-accent-fg); border-bottom-right-radius:4px; }\n.scalebun-bubble-assistant{ align-self:flex-start; background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); border-bottom-left-radius:4px; }\n.scalebun-bubble.streaming::after{ content:'\u258D'; animation:scalebun-blink 1s step-end infinite; }\n@keyframes scalebun-blink{ 50%{ opacity:0; } }\n.scalebun-panel-composer{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--scalebun-border); align-items:flex-end; }\n.scalebun-panel-input{ flex:1; resize:none; border:1px solid var(--scalebun-border); border-radius:10px; padding:9px 11px;\n font:inherit; font-size:13.5px; background:transparent; color:var(--scalebun-fg); max-height:120px; }\n.scalebun-panel-send{ padding:9px 14px; }\n\n/* S14 \u2014 checklist / onboarding widget */\n.scalebun-checklist{ position:absolute; bottom:16px; right:16px; width:320px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:14px; box-shadow:var(--scalebun-shadow); padding:14px 16px; }\n.scalebun-checklist.complete{ border-color:var(--scalebun-accent); }\n.scalebun-cl-head{ display:flex; align-items:center; gap:6px; margin-bottom:10px; }\n.scalebun-cl-title{ flex:1; font-weight:700; font-size:14px; }\n.scalebun-cl-dock{ font-size:14px; }\n.scalebun-cl-bar{ height:6px; border-radius:3px; background:color-mix(in srgb, var(--scalebun-fg) 10%, transparent); overflow:hidden; }\n.scalebun-cl-fill{ height:100%; background:var(--scalebun-accent); transition:width .25s ease; }\n.scalebun-cl-count{ font-size:11.5px; color:var(--scalebun-muted); margin:6px 0 10px; }\n.scalebun-checklist.collapsed .scalebun-cl-bar, .scalebun-checklist.collapsed .scalebun-cl-count, .scalebun-checklist.collapsed .scalebun-cl-list{ display:none; }\n.scalebun-cl-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }\n.scalebun-cl-item{ display:flex; align-items:center; gap:10px; padding:6px 4px; font-size:13.5px; }\n.scalebun-cl-item.done .scalebun-cl-label{ color:var(--scalebun-muted); text-decoration:line-through; }\n.scalebun-cl-check{ width:20px; height:20px; flex:0 0 auto; border-radius:6px; border:1.5px solid var(--scalebun-border);\n background:transparent; color:var(--scalebun-accent-fg); cursor:pointer; font-size:12px; line-height:1; }\n.scalebun-cl-item.done .scalebun-cl-check{ background:var(--scalebun-accent); border-color:var(--scalebun-accent); }\n.scalebun-cl-label{ flex:1; }\n\n/* S15 \u2014 full-page takeover */\n.scalebun-takeover{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;\n background:var(--scalebun-bg); color:var(--scalebun-fg); padding:32px; overflow:auto; animation:var(--scalebun-anim-in, scalebun-fade .2s ease); }\n.scalebun-takeover-inner{ position:relative; max-width:640px; width:100%; text-align:center; }\n.scalebun-takeover-x{ position:absolute; top:-8px; inset-inline-end:-8px; }\n\n/* S12 \u2014 floating launcher */\n.scalebun-launcher{ position:absolute; bottom:0; right:0; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }\n.scalebun-launcher-fab{ width:52px; height:52px; border-radius:50%; border:0; background:var(--scalebun-accent); color:var(--scalebun-accent-fg);\n font-size:22px; cursor:pointer; box-shadow:var(--scalebun-shadow); }\n.scalebun-launcher-menu{ display:flex; flex-direction:column; gap:2px; background:var(--scalebun-bg); color:var(--scalebun-fg);\n border:1px solid var(--scalebun-border); border-radius:12px; box-shadow:var(--scalebun-shadow); padding:6px; min-width:180px;\n animation:scalebun-pop .14s ease; }\n.scalebun-launcher-menu[hidden]{ display:none; }\n.scalebun-launcher-item{ text-align:left; background:none; border:0; color:var(--scalebun-fg); cursor:pointer; font:inherit;\n font-size:13.5px; padding:9px 12px; border-radius:8px; }\n.scalebun-launcher-item:hover{ background:color-mix(in srgb, var(--scalebun-fg) 7%, transparent); }\n";
|
|
7
7
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,YAAY,y3kBAoOxB,CAAC"}
|
|
@@ -16,11 +16,16 @@ export const SURFACES_CSS = `
|
|
|
16
16
|
The reduced-motion rule in host.ts is marked important and still wins over anything set here. */
|
|
17
17
|
|
|
18
18
|
/* S9 — banner */
|
|
19
|
-
.
|
|
19
|
+
/* WRAPS rather than overflows. A banner carrying a heading, body, a stat and a CTA measures 407px of
|
|
20
|
+
content, so on any phone it ran past the screen edge and took the page's horizontal scroll with it
|
|
21
|
+
— the one remaining defect that reproduced with the catalog's OWN copy, not stressed content.
|
|
22
|
+
Wrapping to a second row was chosen over dropping the stat or scrolling horizontally: nothing is
|
|
23
|
+
lost, and a banner is already variable-height, so no other surface has to change to allow it. */
|
|
24
|
+
.scalebun-banner{ display:flex; align-items:center; gap:12px; padding:10px 16px; flex-wrap:wrap;
|
|
20
25
|
background:var(--scalebun-bg); color:var(--scalebun-fg); border-bottom:1px solid var(--scalebun-border);
|
|
21
26
|
box-shadow:var(--scalebun-shadow); animation:var(--scalebun-anim-in, scalebun-slidedown .18s ease); }
|
|
22
27
|
.scalebun-banner-bottom{ border-bottom:0; border-top:1px solid var(--scalebun-border); animation:var(--scalebun-anim-in, scalebun-slideup .18s ease); }
|
|
23
|
-
.scalebun-banner .scalebun-body{ flex:1; display:flex; align-items:center; gap:12px; min-width:0; }
|
|
28
|
+
.scalebun-banner .scalebun-body{ flex:1; display:flex; align-items:center; gap:12px; min-width:0; flex-wrap:wrap; }
|
|
24
29
|
.scalebun-banner .scalebun-body>*{ margin:0; }
|
|
25
30
|
.scalebun-banner .scalebun-cta-row{ margin:0; }
|
|
26
31
|
@keyframes scalebun-slidedown{ from{ transform:translateY(-100%); } to{ transform:none; } }
|
|
@@ -44,7 +49,7 @@ export const SURFACES_CSS = `
|
|
|
44
49
|
.scalebun-modal-card[data-size="md"]{ max-width:460px; }
|
|
45
50
|
.scalebun-modal-card[data-size="lg"]{ max-width:620px; }
|
|
46
51
|
.scalebun-modal-card[data-size="xl"]{ max-width:820px; }
|
|
47
|
-
.scalebun-modal-x{ position:absolute; top:10px;
|
|
52
|
+
.scalebun-modal-x{ position:absolute; top:10px; inset-inline-end:10px; }
|
|
48
53
|
@keyframes scalebun-fade{ from{ opacity:0; } to{ opacity:1; } }
|
|
49
54
|
@keyframes scalebun-pop{ from{ transform:scale(.96); opacity:0; } to{ transform:none; opacity:1; } }
|
|
50
55
|
|
|
@@ -80,7 +85,24 @@ export const SURFACES_CSS = `
|
|
|
80
85
|
border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow); padding:14px 16px; max-width:320px;
|
|
81
86
|
animation:scalebun-pop .14s ease; }
|
|
82
87
|
.scalebun-pop-body>*:last-child{ margin-bottom:0; }
|
|
83
|
-
.scalebun-pop-x{ position:absolute; top:6px;
|
|
88
|
+
.scalebun-pop-x{ position:absolute; top:6px; inset-inline-end:6px; }
|
|
89
|
+
/* A close button is out of flow, so nothing stops a heading running underneath it — the × then
|
|
90
|
+
lands on a word of the title. Reserving the space is the same thing .scalebun-toolbar-callout
|
|
91
|
+
already did with its right padding. Every surface that pairs an absolute × with a heading needs
|
|
92
|
+
it, which the stressed sweep put at nine of them, not the three the authored copy revealed.
|
|
93
|
+
|
|
94
|
+
LOGICAL, not physical. This was padding-right, correct only while text runs left-to-right: in
|
|
95
|
+
RTL a line ENDS on the left and STARTS under the close button, so the reserved gap sat on the
|
|
96
|
+
side the text was leaving and the × landed on the first word instead of the last. The buttons
|
|
97
|
+
use inset-inline-end for the same reason. Caught by sweeping the catalog in Arabic. */
|
|
98
|
+
.scalebun-popover .scalebun-h,
|
|
99
|
+
.scalebun-coachmark .scalebun-h,
|
|
100
|
+
.scalebun-modal-card .scalebun-h,
|
|
101
|
+
.scalebun-inline .scalebun-h,
|
|
102
|
+
.scalebun-toast .scalebun-h,
|
|
103
|
+
.scalebun-banner .scalebun-h,
|
|
104
|
+
.scalebun-takeover-inner .scalebun-h,
|
|
105
|
+
.scalebun-toolbar-callout .scalebun-h{ padding-inline-end:24px; }
|
|
84
106
|
|
|
85
107
|
/* S5 — coachmark + spotlight */
|
|
86
108
|
.scalebun-coach-spot{ position:fixed; border-radius:8px; box-shadow:0 0 0 9999px rgba(12,10,20,.55);
|
|
@@ -89,12 +111,29 @@ export const SURFACES_CSS = `
|
|
|
89
111
|
border:1px solid var(--scalebun-border); border-radius:var(--scalebun-radius); box-shadow:var(--scalebun-shadow);
|
|
90
112
|
padding:14px 16px; max-width:300px; animation:scalebun-pop .14s ease; }
|
|
91
113
|
|
|
92
|
-
/* S6 — product tour
|
|
93
|
-
|
|
94
|
-
.scalebun-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
.scalebun-tour-
|
|
114
|
+
/* S6 — product tour. The same three phone-only defects fixed in coach/overlay.ts, which carries the
|
|
115
|
+
full reasoning: width is EXPLICIT because a fixed box with left:50% and no width shrink-wraps to
|
|
116
|
+
half the viewport; the heading reserves the space .scalebun-pop-x is absolutely positioned in; and
|
|
117
|
+
the nav's items are flex:none so an overflowing footer wraps intact instead of collapsing the
|
|
118
|
+
progress counter into a one-character column. */
|
|
119
|
+
.scalebun-tour-card{ width:min(320px, calc(100vw - 32px)); }
|
|
120
|
+
.scalebun-tour-card .scalebun-h{ padding-right:20px; }
|
|
121
|
+
/* Centred by transform, and ANIMATED by transform — so the entrance clobbered the centring.
|
|
122
|
+
.scalebun-coachmark carries animation:scalebun-pop, whose keyframes set transform:scale(.96) then
|
|
123
|
+
transform:none. An animated property REPLACES the declared one for the whole run, so for the
|
|
124
|
+
animation's 140ms this card was drawn at left:50%/top:50% with NO translate — sitting half its own
|
|
125
|
+
width down and to the right — then snapped into place when the animation finished. That is the
|
|
126
|
+
visible jump on opening a tour and on every Next.
|
|
127
|
+
The fix keeps the translate inside the keyframes so the centring survives the run. The individual
|
|
128
|
+
translate property would be tidier, but it silently breaks centring where unsupported, and a card
|
|
129
|
+
that never centres is worse than one that briefly animates. */
|
|
130
|
+
.scalebun-tour-center{ top:50%; left:50%; transform:translate(-50%,-50%); animation-name:scalebun-pop-center; }
|
|
131
|
+
@keyframes scalebun-pop-center{
|
|
132
|
+
from{ transform:translate(-50%,-50%) scale(.96); opacity:0; }
|
|
133
|
+
to{ transform:translate(-50%,-50%); opacity:1; } }
|
|
134
|
+
.scalebun-tour-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:14px; flex-wrap:wrap; }
|
|
135
|
+
.scalebun-tour-prog{ font-size:11.5px; color:var(--scalebun-muted); font-variant-numeric:tabular-nums; flex:none; white-space:nowrap; }
|
|
136
|
+
.scalebun-tour-btns{ display:flex; gap:6px; flex:none; }
|
|
98
137
|
.scalebun-tour-btns .scalebun-btn{ padding:6px 12px; font-size:12.5px; }
|
|
99
138
|
|
|
100
139
|
/* S7 — hotspot / beacon */
|
|
@@ -128,6 +167,16 @@ export const SURFACES_CSS = `
|
|
|
128
167
|
.scalebun-palette-hint{ font-size:11.5px; opacity:.7; }
|
|
129
168
|
.scalebun-palette-empty{ padding:16px; text-align:center; color:var(--scalebun-muted); font-size:13px; }
|
|
130
169
|
|
|
170
|
+
/* Every flex ROW below holds text, and a flex item's min-width defaults to its CONTENT — so a single
|
|
171
|
+
unbreakable run (a support URL, a deploy hash) forces the row wider than the surface that contains
|
|
172
|
+
it, no matter that the text itself is allowed to wrap. This is the same defect already fixed on
|
|
173
|
+
.scalebun-cta-row; these are the remaining rows, and between them they were 84 of the sweep's last
|
|
174
|
+
112 findings. The text children already carry overflow-wrap from BLOCKS_CSS — this is what lets
|
|
175
|
+
them actually use it. */
|
|
176
|
+
.scalebun-panel-head, .scalebun-panel-title, .scalebun-cl-head, .scalebun-cl-title,
|
|
177
|
+
.scalebun-cl-item, .scalebun-cl-label, .scalebun-palette-item, .scalebun-code-bar,
|
|
178
|
+
.scalebun-code-lang, .scalebun-code-copy{ min-width:0; overflow-wrap:anywhere; }
|
|
179
|
+
|
|
131
180
|
/* S3 — docked panel + AI shell */
|
|
132
181
|
.scalebun-panel{ position:absolute; top:0; bottom:0; width:360px; display:flex; flex-direction:column;
|
|
133
182
|
background:var(--scalebun-bg); color:var(--scalebun-fg); box-shadow:var(--scalebun-shadow); }
|
|
@@ -169,7 +218,7 @@ export const SURFACES_CSS = `
|
|
|
169
218
|
.scalebun-takeover{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:auto;
|
|
170
219
|
background:var(--scalebun-bg); color:var(--scalebun-fg); padding:32px; overflow:auto; animation:var(--scalebun-anim-in, scalebun-fade .2s ease); }
|
|
171
220
|
.scalebun-takeover-inner{ position:relative; max-width:640px; width:100%; text-align:center; }
|
|
172
|
-
.scalebun-takeover-x{ position:absolute; top:-8px;
|
|
221
|
+
.scalebun-takeover-x{ position:absolute; top:-8px; inset-inline-end:-8px; }
|
|
173
222
|
|
|
174
223
|
/* S12 — floating launcher */
|
|
175
224
|
.scalebun-launcher{ position:absolute; bottom:0; right:0; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoO3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/toolbar.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAalE,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/toolbar.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAalE,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CA0DpE"}
|
|
@@ -33,8 +33,11 @@ export function toolbarSurface(ctx) {
|
|
|
33
33
|
? new LiveAnchor({
|
|
34
34
|
spec: specFromSelector(selector),
|
|
35
35
|
size: () => {
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
// offsetWidth/Height, NOT getBoundingClientRect: the rect includes TRANSFORMS, and every
|
|
37
|
+
// anchored surface animates in with a scale. Measuring mid-animation placed the card from
|
|
38
|
+
// a size it was about to stop having, so it painted in the wrong spot and visibly jumped
|
|
39
|
+
// when the entrance finished — measured at ~150ms of wrong position on a tour step.
|
|
40
|
+
return { width: root.offsetWidth || 220, height: root.offsetHeight || 80 };
|
|
38
41
|
},
|
|
39
42
|
preferred: { side: preferredSide(ctx), align: 'center' },
|
|
40
43
|
offset: variant.surfaceOptions?.offset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/toolbar.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,SAAS,cAAc,CAAC,GAAoB;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;AAC5I,CAAC;AACD,SAAS,aAAa,CAAC,GAAoB;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC;IAChD,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,SAAS,GAAG,0BAA0B,CAAC;IAC5C,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAEjC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC;QAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;QAClB,CAAC,CAAC,SAAS,GAAG,2BAA2B,CAAC;QAC1C,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;QACpB,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,IAAI,UAAU,CAAC;YACb,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC;YAChC,IAAI,EAAE,GAAG,EAAE;gBACT,
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/toolbar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tour.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/tour.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAwBlE,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"tour.d.ts","sourceRoot":"","sources":["../../../../src/features/inapp/surfaces/tour.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAwBlE,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CA8LjE"}
|