@limekex/bugreport-widget-sdk 0.1.3 → 0.1.5
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/types/shared.types.d.ts +1 -0
- package/dist/types/shared.types.d.ts.map +1 -1
- package/dist/widget/button.d.ts.map +1 -1
- package/dist/widget/button.js +13 -4
- package/dist/widget/button.js.map +1 -1
- package/dist/widget/modal.d.ts +0 -13
- package/dist/widget/modal.d.ts.map +1 -1
- package/dist/widget/modal.js +71 -2
- package/dist/widget/modal.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.types.d.ts","sourceRoot":"","sources":["../../src/types/shared.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,YAAY,CAAC;IACrC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAID,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEhE,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.types.d.ts","sourceRoot":"","sources":["../../src/types/shared.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,YAAY,CAAC;IACrC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAID,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEhE,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAInB;AAED,qDAAqD;AACrD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,wBAAwB,GAAG,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/widget/button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/widget/button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAuCxF;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|
package/dist/widget/button.js
CHANGED
|
@@ -19,11 +19,20 @@ export function injectFloatingButton(instance, theme) {
|
|
|
19
19
|
};
|
|
20
20
|
const button = document.createElement('button');
|
|
21
21
|
button.id = BUTTON_ID;
|
|
22
|
-
button.textContent = '🐛
|
|
22
|
+
button.textContent = '🐛';
|
|
23
23
|
button.setAttribute('style', `position:fixed;${positionStyles[position]}z-index:${zIndex};` +
|
|
24
|
-
`background
|
|
25
|
-
`
|
|
26
|
-
`box-shadow:0 4px 12px rgba(0,0,0,0.
|
|
24
|
+
`background:#1f2937;color:#fff;border:none;border-radius:50%;` +
|
|
25
|
+
`width:48px;height:48px;font-size:22px;cursor:pointer;` +
|
|
26
|
+
`box-shadow:0 4px 12px rgba(0,0,0,0.3);transition:transform 0.2s,box-shadow 0.2s;` +
|
|
27
|
+
`display:flex;align-items:center;justify-content:center;`);
|
|
28
|
+
button.addEventListener('mouseenter', () => {
|
|
29
|
+
button.style.transform = 'scale(1.1)';
|
|
30
|
+
button.style.boxShadow = '0 6px 16px rgba(0,0,0,0.4)';
|
|
31
|
+
});
|
|
32
|
+
button.addEventListener('mouseleave', () => {
|
|
33
|
+
button.style.transform = 'scale(1)';
|
|
34
|
+
button.style.boxShadow = '0 4px 12px rgba(0,0,0,0.3)';
|
|
35
|
+
});
|
|
27
36
|
button.addEventListener('click', () => instance.open());
|
|
28
37
|
document.body.appendChild(button);
|
|
29
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/widget/button.ts"],"names":[],"mappings":"AAGA,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAwB,EAAE,KAAmB;IAChF,IAAI,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;QAAE,OAAO;IAE/C,MAAM,QAAQ,GAAG,KAAK,EAAE,cAAc,IAAI,cAAc,CAAC;IACzD,MAAM,YAAY,GAAG,KAAK,EAAE,YAAY,IAAI,SAAS,CAAC;IACtD,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC;IAErC,MAAM,cAAc,GAA2B;QAC7C,cAAc,EAAE,yBAAyB;QACzC,aAAa,EAAE,wBAAwB;QACvC,WAAW,EAAE,sBAAsB;QACnC,UAAU,EAAE,qBAAqB;KAClC,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,MAAM,CAAC,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/widget/button.ts"],"names":[],"mappings":"AAGA,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAwB,EAAE,KAAmB;IAChF,IAAI,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;QAAE,OAAO;IAE/C,MAAM,QAAQ,GAAG,KAAK,EAAE,cAAc,IAAI,cAAc,CAAC;IACzD,MAAM,YAAY,GAAG,KAAK,EAAE,YAAY,IAAI,SAAS,CAAC;IACtD,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC;IAErC,MAAM,cAAc,GAA2B;QAC7C,cAAc,EAAE,yBAAyB;QACzC,aAAa,EAAE,wBAAwB;QACvC,WAAW,EAAE,sBAAsB;QACnC,UAAU,EAAE,qBAAqB;KAClC,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,YAAY,CACjB,OAAO,EACP,kBAAkB,cAAc,CAAC,QAAQ,CAAC,WAAW,MAAM,GAAG;QAC5D,8DAA8D;QAC9D,uDAAuD;QACvD,kFAAkF;QAClF,yDAAyD,CAC5D,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,4BAA4B,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,4BAA4B,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAExD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC"}
|
package/dist/widget/modal.d.ts
CHANGED
|
@@ -2,19 +2,6 @@ import type { BugReporterConfig } from '../types/shared.types';
|
|
|
2
2
|
export interface ModalCallbacks {
|
|
3
3
|
onClose: () => void;
|
|
4
4
|
}
|
|
5
|
-
/**
|
|
6
|
-
* Opens the bug report modal and wires up form submission.
|
|
7
|
-
*
|
|
8
|
-
* The modal is a plain DOM element with production-ready CSS injected into the
|
|
9
|
-
* page. No React or CSS framework required — works in any web app.
|
|
10
|
-
*
|
|
11
|
-
* Features:
|
|
12
|
-
* - Focus trap (Tab/Shift-Tab cycle within modal)
|
|
13
|
-
* - Animated overlay + slide-up entrance
|
|
14
|
-
* - Responsive layout (stacks on mobile)
|
|
15
|
-
* - "Capture current screen" button (html2canvas when available)
|
|
16
|
-
* - Accessible: aria roles, keyboard dismiss, label associations
|
|
17
|
-
*/
|
|
18
5
|
export declare function openModal(config: BugReporterConfig, callbacks: ModalCallbacks): void;
|
|
19
6
|
export declare function closeModal(callbacks?: ModalCallbacks): void;
|
|
20
7
|
//# sourceMappingURL=modal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAU/D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAU/D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAmQD,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,CAgDpF;AAED,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,CAU3D"}
|
package/dist/widget/modal.js
CHANGED
|
@@ -177,6 +177,35 @@ function injectStyles() {
|
|
|
177
177
|
font-size: 13px;
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
+
/* ── Verification ────────────────────────────────────────── */
|
|
181
|
+
.__br_honeypot {
|
|
182
|
+
position: absolute !important;
|
|
183
|
+
left: -9999px !important;
|
|
184
|
+
width: 1px !important;
|
|
185
|
+
height: 1px !important;
|
|
186
|
+
opacity: 0 !important;
|
|
187
|
+
overflow: hidden !important;
|
|
188
|
+
pointer-events: none !important;
|
|
189
|
+
}
|
|
190
|
+
.__br_checkbox_label {
|
|
191
|
+
display: flex;
|
|
192
|
+
align-items: center;
|
|
193
|
+
gap: 8px;
|
|
194
|
+
font-size: 14px;
|
|
195
|
+
color: #374151;
|
|
196
|
+
cursor: pointer;
|
|
197
|
+
user-select: none;
|
|
198
|
+
}
|
|
199
|
+
.__br_checkbox {
|
|
200
|
+
width: 18px;
|
|
201
|
+
height: 18px;
|
|
202
|
+
cursor: pointer;
|
|
203
|
+
accent-color: #e11d48;
|
|
204
|
+
}
|
|
205
|
+
.__br_math_challenge {
|
|
206
|
+
margin-bottom: 16px;
|
|
207
|
+
}
|
|
208
|
+
|
|
180
209
|
/* ── Submit button ───────────────────────────────────────── */
|
|
181
210
|
.__br_submit_btn {
|
|
182
211
|
margin-top: 18px;
|
|
@@ -228,10 +257,13 @@ function injectStyles() {
|
|
|
228
257
|
* - "Capture current screen" button (html2canvas when available)
|
|
229
258
|
* - Accessible: aria roles, keyboard dismiss, label associations
|
|
230
259
|
*/
|
|
260
|
+
// Track when modal was opened (for timing bot check)
|
|
261
|
+
let modalOpenedAt = 0;
|
|
231
262
|
export function openModal(config, callbacks) {
|
|
232
263
|
if (document.getElementById(MODAL_ID))
|
|
233
264
|
return;
|
|
234
265
|
injectStyles();
|
|
266
|
+
modalOpenedAt = Date.now();
|
|
235
267
|
const overlay = document.createElement('div');
|
|
236
268
|
overlay.id = OVERLAY_ID;
|
|
237
269
|
const modal = document.createElement('div');
|
|
@@ -336,6 +368,13 @@ async function handleSubmit(form, config, callbacks) {
|
|
|
336
368
|
setFormState(form, 'loading');
|
|
337
369
|
try {
|
|
338
370
|
const values = collectFormValues(form);
|
|
371
|
+
// Bot protection: honeypot + math challenge + timing
|
|
372
|
+
const timeSpent = Math.floor((Date.now() - modalOpenedAt) / 1000);
|
|
373
|
+
const botCheck = {
|
|
374
|
+
honeypot: values.honeypot,
|
|
375
|
+
mathAnswer: values.mathAnswer,
|
|
376
|
+
timeSpent,
|
|
377
|
+
};
|
|
339
378
|
const formData = buildReportPayload({
|
|
340
379
|
summary: values.summary,
|
|
341
380
|
severity: values.severity,
|
|
@@ -345,6 +384,7 @@ async function handleSubmit(form, config, callbacks) {
|
|
|
345
384
|
stepsToReproduce: values.stepsToReproduce,
|
|
346
385
|
notes: values.notes || undefined,
|
|
347
386
|
environment: config.environment,
|
|
387
|
+
botCheck: JSON.stringify(botCheck),
|
|
348
388
|
}, config);
|
|
349
389
|
// Attach screenshot — prefer captured screenshot, fall back to file upload
|
|
350
390
|
if (values.capturedScreenshot) {
|
|
@@ -355,7 +395,7 @@ async function handleSubmit(form, config, callbacks) {
|
|
|
355
395
|
formData.append('screenshot', values.screenshot);
|
|
356
396
|
}
|
|
357
397
|
const result = await submitReport({ apiBaseUrl: config.apiBaseUrl, formData });
|
|
358
|
-
setFormState(form, 'success'
|
|
398
|
+
setFormState(form, 'success');
|
|
359
399
|
}
|
|
360
400
|
catch (err) {
|
|
361
401
|
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
@@ -385,6 +425,8 @@ function collectFormValues(form) {
|
|
|
385
425
|
notes: String(data.get('notes') ?? ''),
|
|
386
426
|
screenshot,
|
|
387
427
|
capturedScreenshot,
|
|
428
|
+
honeypot: String(data.get('website') ?? ''),
|
|
429
|
+
mathAnswer: String(data.get('mathAnswer') ?? ''),
|
|
388
430
|
};
|
|
389
431
|
}
|
|
390
432
|
function setFormState(form, state, message) {
|
|
@@ -402,7 +444,7 @@ function setFormState(form, state, message) {
|
|
|
402
444
|
else if (state === 'success') {
|
|
403
445
|
submitBtn.textContent = 'Submit bug report';
|
|
404
446
|
statusEl.className = '__br_status_success';
|
|
405
|
-
statusEl.
|
|
447
|
+
statusEl.textContent = '✅ Bug report submitted successfully!';
|
|
406
448
|
setTimeout(() => closeModal(), SUCCESS_AUTO_CLOSE_DELAY_MS);
|
|
407
449
|
}
|
|
408
450
|
else if (state === 'error') {
|
|
@@ -412,6 +454,11 @@ function setFormState(form, state, message) {
|
|
|
412
454
|
}
|
|
413
455
|
}
|
|
414
456
|
function buildFormHtml() {
|
|
457
|
+
// Generate random math challenge
|
|
458
|
+
const num1 = Math.floor(Math.random() * 10) + 1; // 1-10
|
|
459
|
+
const num2 = Math.floor(Math.random() * 10) + 1; // 1-10
|
|
460
|
+
const mathQuestion = `${num1} + ${num2}`;
|
|
461
|
+
const mathAnswer = num1 + num2;
|
|
415
462
|
return `
|
|
416
463
|
<div class="__br_header">
|
|
417
464
|
<h2 id="__bugreport_title__" class="__br_title">🐛 Report a bug</h2>
|
|
@@ -420,6 +467,9 @@ function buildFormHtml() {
|
|
|
420
467
|
|
|
421
468
|
<form id="__bugreport_form__" novalidate>
|
|
422
469
|
|
|
470
|
+
<!-- Honeypot field (hidden from users, bots will fill it) -->
|
|
471
|
+
<input name="website" type="text" class="__br_honeypot" tabindex="-1" autocomplete="off" />
|
|
472
|
+
|
|
423
473
|
<div class="__br_field">
|
|
424
474
|
<label for="__br_summary__" class="__br_label">Summary<span class="__br_required">*</span></label>
|
|
425
475
|
<input id="__br_summary__" name="summary" type="text" required minlength="5" maxlength="200"
|
|
@@ -481,6 +531,25 @@ function buildFormHtml() {
|
|
|
481
531
|
placeholder="Anything else worth mentioning?" class="__br_textarea"></textarea>
|
|
482
532
|
</div>
|
|
483
533
|
|
|
534
|
+
<!-- Bot protection: Math challenge -->
|
|
535
|
+
<div class="__br_field __br_math_challenge">
|
|
536
|
+
<label for="__br_mathAnswer__" class="__br_label">Quick check: What is ${mathQuestion}?<span class="__br_required">*</span></label>
|
|
537
|
+
<input id="__br_mathAnswer__" name="mathAnswer" type="number"
|
|
538
|
+
required
|
|
539
|
+
data-answer="${mathAnswer}"
|
|
540
|
+
placeholder="Enter the answer"
|
|
541
|
+
class="__br_input"
|
|
542
|
+
style="max-width: 120px;" />
|
|
543
|
+
<p class="__br_hint">Help us prevent spam</p>
|
|
544
|
+
</div>
|
|
545
|
+
|
|
546
|
+
<div class="__br_field">
|
|
547
|
+
<label class="__br_checkbox_label">
|
|
548
|
+
<input id="__br_confirm__" type="checkbox" required class="__br_checkbox" />
|
|
549
|
+
<span>I confirm this is a legitimate bug report</span>
|
|
550
|
+
</label>
|
|
551
|
+
</div>
|
|
552
|
+
|
|
484
553
|
<div id="__bugreport_status__"></div>
|
|
485
554
|
|
|
486
555
|
<button id="__bugreport_submit__" type="submit" class="__br_submit_btn">
|
package/dist/widget/modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AACvC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAC3C,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAMxC,gFAAgF;AAChF,+EAA+E;AAC/E,mDAAmD;AAEnD,SAAS,YAAY;IACnB,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG;;OAEf,UAAU;;;;;;;;;;;;;;;OAeV,QAAQ
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"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"}
|