@limekex/bugreport-widget-sdk 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,6 +38,8 @@ export interface BugReporterConfig {
38
38
  getTraceContext?: () => TraceContext;
39
39
  /** Optional theme overrides */
40
40
  theme?: WidgetTheme;
41
+ /** Require testers to sign in before submitting bug reports */
42
+ requireAuth?: boolean;
41
43
  }
42
44
  export type BugSeverity = 'blocker' | 'high' | 'medium' | 'low';
43
45
  /** Fields submitted via multipart/form-data. */
@@ -82,4 +84,29 @@ export interface BugReportErrorResponse {
82
84
  details?: unknown;
83
85
  }
84
86
  export type BugReportResponse = BugReportSuccessResponse | BugReportErrorResponse;
87
+ export interface AuthRegisterRequest {
88
+ email: string;
89
+ name: string;
90
+ password: string;
91
+ }
92
+ export interface AuthLoginRequest {
93
+ email: string;
94
+ password: string;
95
+ }
96
+ export interface TesterInfo {
97
+ id: string;
98
+ email: string;
99
+ name: string;
100
+ }
101
+ export interface AuthSuccessResponse {
102
+ success: true;
103
+ token: string;
104
+ tester: TesterInfo;
105
+ }
106
+ export interface AuthErrorResponse {
107
+ success: false;
108
+ error: string;
109
+ details?: unknown;
110
+ }
111
+ export type AuthResponse = AuthSuccessResponse | AuthErrorResponse;
85
112
  //# sourceMappingURL=shared.types.d.ts.map
@@ -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;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
+ {"version":3,"file":"shared.types.d.ts","sourceRoot":"","sources":["../../src/types/shared.types.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
- import type { BugReportSuccessResponse } from '../types/shared.types';
1
+ import type { BugReportSuccessResponse, AuthLoginRequest, AuthRegisterRequest, AuthResponse, TesterInfo } from '../types/shared.types';
2
+ export declare function getAuthToken(): string | null;
3
+ export declare function setAuthToken(token: string): void;
4
+ export declare function removeAuthToken(): void;
5
+ export declare function getTesterInfo(): TesterInfo | null;
6
+ export declare function setTesterInfo(tester: TesterInfo): void;
7
+ export declare function login(apiBaseUrl: string, credentials: AuthLoginRequest): Promise<AuthResponse>;
8
+ export declare function register(apiBaseUrl: string, data: AuthRegisterRequest): Promise<AuthResponse>;
9
+ export declare function verifyToken(apiBaseUrl: string, token: string): Promise<boolean>;
2
10
  export interface SubmitReportOptions {
3
11
  apiBaseUrl: string;
4
12
  formData: FormData;
13
+ authToken?: string | null;
5
14
  }
6
- /**
7
- * Sends the bug report FormData to the backend API.
8
- */
9
15
  export declare function submitReport(options: SubmitReportOptions): Promise<BugReportSuccessResponse>;
10
16
  //# sourceMappingURL=apiClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../src/utils/apiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAA0B,MAAM,uBAAuB,CAAC;AAE9F,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CAkBnC"}
1
+ {"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../src/utils/apiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAExB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACX,MAAM,uBAAuB,CAAC;AAO/B,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAM5C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMhD;AAED,wBAAgB,eAAe,IAAI,IAAI,CAOtC;AAED,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAOjD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAMtD;AAID,wBAAsB,KAAK,CACzB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,gBAAgB,GAC5B,OAAO,CAAC,YAAY,CAAC,CAavB;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,YAAY,CAAC,CAavB;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAID,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CA0BnC"}
@@ -1,11 +1,101 @@
1
- /**
2
- * Sends the bug report FormData to the backend API.
3
- */
1
+ // ── Token Management ──────────────────────────────────────────────────────────
2
+ const TOKEN_STORAGE_KEY = '__bugreport_auth_token__';
3
+ const TESTER_STORAGE_KEY = '__bugreport_tester_info__';
4
+ export function getAuthToken() {
5
+ try {
6
+ return localStorage.getItem(TOKEN_STORAGE_KEY);
7
+ }
8
+ catch {
9
+ return null;
10
+ }
11
+ }
12
+ export function setAuthToken(token) {
13
+ try {
14
+ localStorage.setItem(TOKEN_STORAGE_KEY, token);
15
+ }
16
+ catch {
17
+ // Silent fail if localStorage is unavailable
18
+ }
19
+ }
20
+ export function removeAuthToken() {
21
+ try {
22
+ localStorage.removeItem(TOKEN_STORAGE_KEY);
23
+ localStorage.removeItem(TESTER_STORAGE_KEY);
24
+ }
25
+ catch {
26
+ // Silent fail
27
+ }
28
+ }
29
+ export function getTesterInfo() {
30
+ try {
31
+ const stored = localStorage.getItem(TESTER_STORAGE_KEY);
32
+ return stored ? JSON.parse(stored) : null;
33
+ }
34
+ catch {
35
+ return null;
36
+ }
37
+ }
38
+ export function setTesterInfo(tester) {
39
+ try {
40
+ localStorage.setItem(TESTER_STORAGE_KEY, JSON.stringify(tester));
41
+ }
42
+ catch {
43
+ // Silent fail
44
+ }
45
+ }
46
+ // ── Auth API Calls ────────────────────────────────────────────────────────────
47
+ export async function login(apiBaseUrl, credentials) {
48
+ const url = `${apiBaseUrl.replace(/\/$/, '')}/api/auth/login`;
49
+ const response = await fetch(url, {
50
+ method: 'POST',
51
+ headers: {
52
+ 'Content-Type': 'application/json',
53
+ },
54
+ body: JSON.stringify(credentials),
55
+ credentials: 'omit',
56
+ });
57
+ return response.json();
58
+ }
59
+ export async function register(apiBaseUrl, data) {
60
+ const url = `${apiBaseUrl.replace(/\/$/, '')}/api/auth/register`;
61
+ const response = await fetch(url, {
62
+ method: 'POST',
63
+ headers: {
64
+ 'Content-Type': 'application/json',
65
+ },
66
+ body: JSON.stringify(data),
67
+ credentials: 'omit',
68
+ });
69
+ return response.json();
70
+ }
71
+ export async function verifyToken(apiBaseUrl, token) {
72
+ const url = `${apiBaseUrl.replace(/\/$/, '')}/api/auth/verify`;
73
+ try {
74
+ const response = await fetch(url, {
75
+ method: 'GET',
76
+ headers: {
77
+ 'Authorization': `Bearer ${token}`,
78
+ },
79
+ credentials: 'omit',
80
+ });
81
+ const data = await response.json();
82
+ return data.success === true;
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ }
4
88
  export async function submitReport(options) {
5
- const { apiBaseUrl, formData } = options;
89
+ const { apiBaseUrl, formData, authToken } = options;
6
90
  const url = `${apiBaseUrl.replace(/\/$/, '')}/api/reports/bug`;
91
+ const headers = {};
92
+ // Add auth token if present
93
+ if (authToken) {
94
+ headers['Authorization'] = `Bearer ${authToken}`;
95
+ }
7
96
  const response = await fetch(url, {
8
97
  method: 'POST',
98
+ headers,
9
99
  body: formData,
10
100
  // Note: do NOT set Content-Type manually — the browser sets it with the boundary.
11
101
  credentials: 'omit',
@@ -1 +1 @@
1
- {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../src/utils/apiClient.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA4B;IAE5B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC;IAE/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,kFAAkF;QAClF,WAAW,EAAE,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsD,CAAC;IAE1F,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAE,IAA+B,CAAC,KAAK,IAAI,wBAAwB,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../src/utils/apiClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Screenshot Annotation Editor
3
+ *
4
+ * Provides a canvas-based editor for annotating screenshots with:
5
+ * - Drawing tools: Arrow, Rectangle, Circle, Pen, Text
6
+ * - Color picker
7
+ * - Undo/redo functionality
8
+ * - Export to PNG
9
+ */
10
+ interface EditorOptions {
11
+ imageDataUrl: string;
12
+ onSave: (annotatedDataUrl: string) => void;
13
+ onCancel: () => void;
14
+ }
15
+ export declare class AnnotationEditor {
16
+ private container;
17
+ private canvas;
18
+ private ctx;
19
+ private image;
20
+ private currentTool;
21
+ private currentColor;
22
+ private lineWidth;
23
+ private annotations;
24
+ private currentAnnotation;
25
+ private isDrawing;
26
+ private startPoint;
27
+ private onSaveCallback;
28
+ private onCancelCallback;
29
+ constructor(options: EditorOptions);
30
+ private loadImage;
31
+ private render;
32
+ private createToolbar;
33
+ private createActions;
34
+ private updateToolbarState;
35
+ private getMousePos;
36
+ private handleMouseDown;
37
+ private handleMouseMove;
38
+ private handleMouseUp;
39
+ private addText;
40
+ private drawCanvas;
41
+ private drawCurrentAnnotation;
42
+ private drawAnnotation;
43
+ private drawArrow;
44
+ private drawRectangle;
45
+ private drawCircle;
46
+ private drawPen;
47
+ private drawText;
48
+ private undo;
49
+ private save;
50
+ private cancel;
51
+ private destroy;
52
+ }
53
+ export declare function openAnnotationEditor(options: EditorOptions): AnnotationEditor;
54
+ export {};
55
+ //# sourceMappingURL=annotationEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotationEditor.d.ts","sourceRoot":"","sources":["../../src/widget/annotationEditor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH,UAAU,aAAa;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAKD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,GAAG,CAAyC;IACpD,OAAO,CAAC,KAAK,CAAiC;IAE9C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAsB;IAExC,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,gBAAgB,CAAa;gBAEzB,OAAO,EAAE,aAAa;IAMlC,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,MAAM;IAkEd,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,aAAa;IA0CrB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;CAMhB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB,CAE7E"}
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Screenshot Annotation Editor
3
+ *
4
+ * Provides a canvas-based editor for annotating screenshots with:
5
+ * - Drawing tools: Arrow, Rectangle, Circle, Pen, Text
6
+ * - Color picker
7
+ * - Undo/redo functionality
8
+ * - Export to PNG
9
+ */
10
+ const EDITOR_ID = '__bugreport_annotation_editor__';
11
+ const CANVAS_ID = '__bugreport_annotation_canvas__';
12
+ export class AnnotationEditor {
13
+ constructor(options) {
14
+ this.container = null;
15
+ this.canvas = null;
16
+ this.ctx = null;
17
+ this.image = null;
18
+ this.currentTool = 'arrow';
19
+ this.currentColor = '#FF0000';
20
+ this.lineWidth = 3;
21
+ this.annotations = [];
22
+ this.currentAnnotation = null;
23
+ this.isDrawing = false;
24
+ this.startPoint = null;
25
+ this.onSaveCallback = options.onSave;
26
+ this.onCancelCallback = options.onCancel;
27
+ this.loadImage(options.imageDataUrl);
28
+ }
29
+ loadImage(dataUrl) {
30
+ this.image = new Image();
31
+ this.image.onload = () => {
32
+ this.render();
33
+ };
34
+ this.image.src = dataUrl;
35
+ }
36
+ render() {
37
+ if (document.getElementById(EDITOR_ID))
38
+ return;
39
+ this.container = document.createElement('div');
40
+ this.container.id = EDITOR_ID;
41
+ this.container.style.cssText = `
42
+ position: fixed;
43
+ inset: 0;
44
+ z-index: 10001;
45
+ background: rgba(0,0,0,0.95);
46
+ display: flex;
47
+ flex-direction: column;
48
+ align-items: center;
49
+ justify-content: center;
50
+ padding: 20px;
51
+ `;
52
+ // Toolbar
53
+ const toolbar = this.createToolbar();
54
+ this.container.appendChild(toolbar);
55
+ // Canvas container
56
+ const canvasContainer = document.createElement('div');
57
+ canvasContainer.style.cssText = `
58
+ flex: 1;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ max-width: 100%;
63
+ max-height: calc(100% - 120px);
64
+ overflow: auto;
65
+ `;
66
+ this.canvas = document.createElement('canvas');
67
+ this.canvas.id = CANVAS_ID;
68
+ this.canvas.style.cssText = `
69
+ max-width: 100%;
70
+ max-height: 100%;
71
+ border: 2px solid #fff;
72
+ cursor: crosshair;
73
+ `;
74
+ if (this.image) {
75
+ this.canvas.width = this.image.width;
76
+ this.canvas.height = this.image.height;
77
+ }
78
+ this.ctx = this.canvas.getContext('2d');
79
+ this.drawCanvas();
80
+ // Event listeners
81
+ this.canvas.addEventListener('mousedown', this.handleMouseDown.bind(this));
82
+ this.canvas.addEventListener('mousemove', this.handleMouseMove.bind(this));
83
+ this.canvas.addEventListener('mouseup', this.handleMouseUp.bind(this));
84
+ this.canvas.addEventListener('mouseleave', this.handleMouseUp.bind(this));
85
+ canvasContainer.appendChild(this.canvas);
86
+ this.container.appendChild(canvasContainer);
87
+ // Action buttons
88
+ const actions = this.createActions();
89
+ this.container.appendChild(actions);
90
+ document.body.appendChild(this.container);
91
+ }
92
+ createToolbar() {
93
+ const toolbar = document.createElement('div');
94
+ toolbar.style.cssText = `
95
+ display: flex;
96
+ gap: 12px;
97
+ align-items: center;
98
+ padding: 16px;
99
+ background: rgba(255,255,255,0.1);
100
+ border-radius: 8px;
101
+ margin-bottom: 16px;
102
+ backdrop-filter: blur(10px);
103
+ `;
104
+ // Tool buttons
105
+ const tools = [
106
+ { tool: 'arrow', label: 'Arrow', icon: '→' },
107
+ { tool: 'rectangle', label: 'Rectangle', icon: '▢' },
108
+ { tool: 'circle', label: 'Circle', icon: '○' },
109
+ { tool: 'pen', label: 'Pen', icon: '✎' },
110
+ { tool: 'text', label: 'Text', icon: 'T' },
111
+ ];
112
+ tools.forEach(({ tool, label, icon }) => {
113
+ const btn = document.createElement('button');
114
+ btn.textContent = `${icon} ${label}`;
115
+ btn.style.cssText = `
116
+ padding: 8px 16px;
117
+ background: ${this.currentTool === tool ? '#e11d48' : 'rgba(255,255,255,0.2)'};
118
+ color: #fff;
119
+ border: none;
120
+ border-radius: 6px;
121
+ cursor: pointer;
122
+ font-size: 14px;
123
+ transition: background 0.2s;
124
+ `;
125
+ btn.addEventListener('click', () => {
126
+ this.currentTool = tool;
127
+ this.updateToolbarState();
128
+ });
129
+ btn.setAttribute('data-tool', tool);
130
+ toolbar.appendChild(btn);
131
+ });
132
+ // Color picker
133
+ const colorLabel = document.createElement('span');
134
+ colorLabel.textContent = 'Color:';
135
+ colorLabel.style.cssText = 'color: #fff; font-size: 14px; margin-left: 16px;';
136
+ toolbar.appendChild(colorLabel);
137
+ const colorInput = document.createElement('input');
138
+ colorInput.type = 'color';
139
+ colorInput.value = this.currentColor;
140
+ colorInput.style.cssText = `
141
+ width: 40px;
142
+ height: 40px;
143
+ border: none;
144
+ border-radius: 6px;
145
+ cursor: pointer;
146
+ `;
147
+ colorInput.addEventListener('change', (e) => {
148
+ this.currentColor = e.target.value;
149
+ });
150
+ toolbar.appendChild(colorInput);
151
+ // Undo button
152
+ const undoBtn = document.createElement('button');
153
+ undoBtn.textContent = '↶ Undo';
154
+ undoBtn.style.cssText = `
155
+ padding: 8px 16px;
156
+ background: rgba(255,255,255,0.2);
157
+ color: #fff;
158
+ border: none;
159
+ border-radius: 6px;
160
+ cursor: pointer;
161
+ font-size: 14px;
162
+ margin-left: 16px;
163
+ `;
164
+ undoBtn.addEventListener('click', () => this.undo());
165
+ toolbar.appendChild(undoBtn);
166
+ return toolbar;
167
+ }
168
+ createActions() {
169
+ const actions = document.createElement('div');
170
+ actions.style.cssText = `
171
+ display: flex;
172
+ gap: 12px;
173
+ margin-top: 16px;
174
+ `;
175
+ const cancelBtn = document.createElement('button');
176
+ cancelBtn.textContent = 'Cancel';
177
+ cancelBtn.style.cssText = `
178
+ padding: 12px 24px;
179
+ background: rgba(255,255,255,0.2);
180
+ color: #fff;
181
+ border: none;
182
+ border-radius: 8px;
183
+ cursor: pointer;
184
+ font-size: 14px;
185
+ font-weight: 600;
186
+ `;
187
+ cancelBtn.addEventListener('click', () => this.cancel());
188
+ const saveBtn = document.createElement('button');
189
+ saveBtn.textContent = 'Done';
190
+ saveBtn.style.cssText = `
191
+ padding: 12px 24px;
192
+ background: #e11d48;
193
+ color: #fff;
194
+ border: none;
195
+ border-radius: 8px;
196
+ cursor: pointer;
197
+ font-size: 14px;
198
+ font-weight: 600;
199
+ `;
200
+ saveBtn.addEventListener('click', () => this.save());
201
+ actions.appendChild(cancelBtn);
202
+ actions.appendChild(saveBtn);
203
+ return actions;
204
+ }
205
+ updateToolbarState() {
206
+ const buttons = this.container?.querySelectorAll('[data-tool]');
207
+ buttons?.forEach((btn) => {
208
+ const tool = btn.getAttribute('data-tool');
209
+ btn.style.background =
210
+ tool === this.currentTool ? '#e11d48' : 'rgba(255,255,255,0.2)';
211
+ });
212
+ }
213
+ getMousePos(e) {
214
+ if (!this.canvas)
215
+ return { x: 0, y: 0 };
216
+ const rect = this.canvas.getBoundingClientRect();
217
+ const scaleX = this.canvas.width / rect.width;
218
+ const scaleY = this.canvas.height / rect.height;
219
+ return {
220
+ x: (e.clientX - rect.left) * scaleX,
221
+ y: (e.clientY - rect.top) * scaleY,
222
+ };
223
+ }
224
+ handleMouseDown(e) {
225
+ if (this.currentTool === 'none')
226
+ return;
227
+ this.isDrawing = true;
228
+ this.startPoint = this.getMousePos(e);
229
+ if (this.currentTool === 'text') {
230
+ this.addText(this.startPoint);
231
+ return;
232
+ }
233
+ this.currentAnnotation = {
234
+ type: this.currentTool,
235
+ color: this.currentColor,
236
+ lineWidth: this.lineWidth,
237
+ start: this.startPoint,
238
+ points: this.currentTool === 'pen' ? [this.startPoint] : undefined,
239
+ };
240
+ }
241
+ handleMouseMove(e) {
242
+ if (!this.isDrawing || !this.currentAnnotation)
243
+ return;
244
+ const currentPoint = this.getMousePos(e);
245
+ if (this.currentTool === 'pen' && this.currentAnnotation.points) {
246
+ this.currentAnnotation.points.push(currentPoint);
247
+ }
248
+ else {
249
+ this.currentAnnotation.end = currentPoint;
250
+ }
251
+ this.drawCanvas();
252
+ this.drawCurrentAnnotation();
253
+ }
254
+ handleMouseUp() {
255
+ if (!this.isDrawing)
256
+ return;
257
+ if (this.currentAnnotation && this.currentTool !== 'text') {
258
+ this.annotations.push({ ...this.currentAnnotation });
259
+ }
260
+ this.isDrawing = false;
261
+ this.currentAnnotation = null;
262
+ this.drawCanvas();
263
+ }
264
+ addText(point) {
265
+ const text = prompt('Enter text:');
266
+ if (!text) {
267
+ this.isDrawing = false;
268
+ return;
269
+ }
270
+ const annotation = {
271
+ type: 'text',
272
+ color: this.currentColor,
273
+ lineWidth: this.lineWidth,
274
+ start: point,
275
+ text,
276
+ };
277
+ this.annotations.push(annotation);
278
+ this.isDrawing = false;
279
+ this.drawCanvas();
280
+ }
281
+ drawCanvas() {
282
+ if (!this.ctx || !this.canvas || !this.image)
283
+ return;
284
+ // Clear canvas
285
+ this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
286
+ // Draw image
287
+ this.ctx.drawImage(this.image, 0, 0);
288
+ // Draw all annotations
289
+ this.annotations.forEach((annotation) => this.drawAnnotation(annotation));
290
+ }
291
+ drawCurrentAnnotation() {
292
+ if (!this.currentAnnotation)
293
+ return;
294
+ this.drawAnnotation(this.currentAnnotation);
295
+ }
296
+ drawAnnotation(annotation) {
297
+ if (!this.ctx)
298
+ return;
299
+ this.ctx.strokeStyle = annotation.color;
300
+ this.ctx.fillStyle = annotation.color;
301
+ this.ctx.lineWidth = annotation.lineWidth;
302
+ this.ctx.lineCap = 'round';
303
+ this.ctx.lineJoin = 'round';
304
+ switch (annotation.type) {
305
+ case 'arrow':
306
+ if (annotation.start && annotation.end) {
307
+ this.drawArrow(annotation.start, annotation.end);
308
+ }
309
+ break;
310
+ case 'rectangle':
311
+ if (annotation.start && annotation.end) {
312
+ this.drawRectangle(annotation.start, annotation.end);
313
+ }
314
+ break;
315
+ case 'circle':
316
+ if (annotation.start && annotation.end) {
317
+ this.drawCircle(annotation.start, annotation.end);
318
+ }
319
+ break;
320
+ case 'pen':
321
+ if (annotation.points && annotation.points.length > 1) {
322
+ this.drawPen(annotation.points);
323
+ }
324
+ break;
325
+ case 'text':
326
+ if (annotation.start && annotation.text) {
327
+ this.drawText(annotation.start, annotation.text);
328
+ }
329
+ break;
330
+ }
331
+ }
332
+ drawArrow(start, end) {
333
+ if (!this.ctx)
334
+ return;
335
+ // Draw line
336
+ this.ctx.beginPath();
337
+ this.ctx.moveTo(start.x, start.y);
338
+ this.ctx.lineTo(end.x, end.y);
339
+ this.ctx.stroke();
340
+ // Draw arrowhead
341
+ const angle = Math.atan2(end.y - start.y, end.x - start.x);
342
+ const headLength = 15;
343
+ this.ctx.beginPath();
344
+ this.ctx.moveTo(end.x, end.y);
345
+ this.ctx.lineTo(end.x - headLength * Math.cos(angle - Math.PI / 6), end.y - headLength * Math.sin(angle - Math.PI / 6));
346
+ this.ctx.moveTo(end.x, end.y);
347
+ this.ctx.lineTo(end.x - headLength * Math.cos(angle + Math.PI / 6), end.y - headLength * Math.sin(angle + Math.PI / 6));
348
+ this.ctx.stroke();
349
+ }
350
+ drawRectangle(start, end) {
351
+ if (!this.ctx)
352
+ return;
353
+ const width = end.x - start.x;
354
+ const height = end.y - start.y;
355
+ this.ctx.beginPath();
356
+ this.ctx.rect(start.x, start.y, width, height);
357
+ this.ctx.stroke();
358
+ }
359
+ drawCircle(start, end) {
360
+ if (!this.ctx)
361
+ return;
362
+ const radius = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2));
363
+ this.ctx.beginPath();
364
+ this.ctx.arc(start.x, start.y, radius, 0, 2 * Math.PI);
365
+ this.ctx.stroke();
366
+ }
367
+ drawPen(points) {
368
+ if (!this.ctx || points.length < 2)
369
+ return;
370
+ this.ctx.beginPath();
371
+ this.ctx.moveTo(points[0].x, points[0].y);
372
+ for (let i = 1; i < points.length; i++) {
373
+ this.ctx.lineTo(points[i].x, points[i].y);
374
+ }
375
+ this.ctx.stroke();
376
+ }
377
+ drawText(point, text) {
378
+ if (!this.ctx)
379
+ return;
380
+ this.ctx.font = '24px sans-serif';
381
+ this.ctx.fillText(text, point.x, point.y);
382
+ }
383
+ undo() {
384
+ this.annotations.pop();
385
+ this.drawCanvas();
386
+ }
387
+ save() {
388
+ if (!this.canvas)
389
+ return;
390
+ const dataUrl = this.canvas.toDataURL('image/png');
391
+ this.onSaveCallback(dataUrl);
392
+ this.destroy();
393
+ }
394
+ cancel() {
395
+ this.onCancelCallback();
396
+ this.destroy();
397
+ }
398
+ destroy() {
399
+ this.container?.remove();
400
+ this.container = null;
401
+ this.canvas = null;
402
+ this.ctx = null;
403
+ }
404
+ }
405
+ export function openAnnotationEditor(options) {
406
+ return new AnnotationEditor(options);
407
+ }
408
+ //# sourceMappingURL=annotationEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotationEditor.js","sourceRoot":"","sources":["../../src/widget/annotationEditor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyBH,MAAM,SAAS,GAAG,iCAAiC,CAAC;AACpD,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD,MAAM,OAAO,gBAAgB;IAkB3B,YAAY,OAAsB;QAjB1B,cAAS,GAA0B,IAAI,CAAC;QACxC,WAAM,GAA6B,IAAI,CAAC;QACxC,QAAG,GAAoC,IAAI,CAAC;QAC5C,UAAK,GAA4B,IAAI,CAAC;QAEtC,gBAAW,GAAmB,OAAO,CAAC;QACtC,iBAAY,GAAG,SAAS,CAAC;QACzB,cAAS,GAAG,CAAC,CAAC;QAEd,gBAAW,GAAiB,EAAE,CAAC;QAC/B,sBAAiB,GAAsB,IAAI,CAAC;QAC5C,cAAS,GAAG,KAAK,CAAC;QAClB,eAAU,GAAiB,IAAI,CAAC;QAMtC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEO,MAAM;QACZ,IAAI,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,OAAO;QAE/C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;;KAU9B,CAAC;QAEF,UAAU;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEpC,mBAAmB;QACnB,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;KAQ/B,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;KAK3B,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1E,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAE5C,iBAAiB;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEO,aAAa;QACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;KASvB,CAAC;QAEF,eAAe;QACf,MAAM,KAAK,GAA4D;YACrE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;YAC5C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE;YACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;YAC9C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;YACxC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;SAC3C,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,GAAG,CAAC,WAAW,GAAG,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG;;sBAEJ,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB;;;;;;;OAO9E,CAAC;YACF,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC;QAClC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,kDAAkD,CAAC;QAC9E,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEhC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACnD,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;QAC1B,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;KAM1B,CAAC;QACF,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,YAAY,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEhC,cAAc;QACd,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;KASvB,CAAC;QACF,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa;QACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;;;;KAIvB,CAAC;QAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACnD,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;QACjC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;KASzB,CAAC;QACF,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;KASvB,CAAC;QACF,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAErD,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,kBAAkB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAChE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC1C,GAAmB,CAAC,KAAK,CAAC,UAAU;gBACnC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,CAAa;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,OAAO;YACL,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM;YACnC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM;SACnC,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,CAAa;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM;YAAE,OAAO;QAExC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG;YACvB,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,CAAa;QACnC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAChE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG,YAAY,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC1D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,OAAO,CAAC,KAAY;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAe;YAC7B,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,KAAK;YACZ,IAAI;SACL,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAErD,eAAe;QACf,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhE,aAAa;QACb,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAErC,uBAAuB;QACvB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAEO,cAAc,CAAC,UAAsB;QAC3C,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;QAE5B,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,OAAO;gBACV,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM;YAER,KAAK,WAAW;gBACd,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;oBACvC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;oBACvC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;YAER,KAAK,KAAK;gBACR,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM;YAER,KAAK,MAAM;gBACT,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBACxC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAY,EAAE,GAAU;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,YAAY;QACZ,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAElB,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAClD,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CACnD,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,CACb,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAClD,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CACnD,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAEO,aAAa,CAAC,KAAY,EAAE,GAAU;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAE/B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU,CAAC,KAAY,EAAE,GAAU;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAEO,OAAO,CAAC,MAAe;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAE3C,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAEO,QAAQ,CAAC,KAAY,EAAE,IAAY;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Authentication Modal
3
+ *
4
+ * Provides login/register UI for tester authentication within the widget.
5
+ */
6
+ export declare function getAuthModal(): HTMLElement | null;
7
+ export declare function isAuthModalOpen(): boolean;
8
+ /**
9
+ * Initialize the authentication modal
10
+ */
11
+ export declare function initAuthModal(apiBaseUrl: string): void;
12
+ /**
13
+ * Open the authentication modal
14
+ */
15
+ export declare function openAuthModal(onSuccess?: () => void): void;
16
+ /**
17
+ * Close the authentication modal
18
+ */
19
+ export declare function closeAuthModal(): void;
20
+ /**
21
+ * Destroy the authentication modal
22
+ */
23
+ export declare function destroyAuthModal(): void;
24
+ //# sourceMappingURL=authModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authModal.d.ts","sourceRoot":"","sources":["../../src/widget/authModal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,wBAAgB,YAAY,IAAI,WAAW,GAAG,IAAI,CAEjD;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CA2LtD;AAmMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAW1D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAOrC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC"}
@@ -0,0 +1,403 @@
1
+ /**
2
+ * Authentication Modal
3
+ *
4
+ * Provides login/register UI for tester authentication within the widget.
5
+ */
6
+ import { login, register, setAuthToken, setTesterInfo } from '../utils/apiClient';
7
+ let authModal = null;
8
+ let isOpen = false;
9
+ let onSuccessCallback = null;
10
+ export function getAuthModal() {
11
+ return authModal;
12
+ }
13
+ export function isAuthModalOpen() {
14
+ return isOpen;
15
+ }
16
+ /**
17
+ * Initialize the authentication modal
18
+ */
19
+ export function initAuthModal(apiBaseUrl) {
20
+ if (authModal)
21
+ return; // Already initialized
22
+ authModal = document.createElement('div');
23
+ authModal.id = '__bugreport-auth-modal__';
24
+ authModal.style.cssText = `
25
+ display: none;
26
+ position: fixed;
27
+ inset: 0;
28
+ background: rgba(0, 0, 0, 0.5);
29
+ z-index: 2147483646;
30
+ align-items: center;
31
+ justify-content: center;
32
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
33
+ `;
34
+ authModal.innerHTML = `
35
+ <div style="
36
+ background: white;
37
+ border-radius: 12px;
38
+ width: 400px;
39
+ max-width: 90%;
40
+ padding: 2rem;
41
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
42
+ position: relative;
43
+ ">
44
+ <button id="__bugreport-auth-close__" style="
45
+ position: absolute;
46
+ top: 1rem;
47
+ right: 1rem;
48
+ background: transparent;
49
+ border: none;
50
+ font-size: 1.5rem;
51
+ cursor: pointer;
52
+ color: #6b7280;
53
+ line-height: 1;
54
+ padding: 0;
55
+ width: 2rem;
56
+ height: 2rem;
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ ">×</button>
61
+
62
+ <div id="__bugreport-auth-content__">
63
+ <!-- Login form (default) -->
64
+ <div id="__bugreport-auth-login__">
65
+ <h2 style="margin: 0 0 0.5rem 0; font-size: 1.5rem; color: #111827;">Sign In</h2>
66
+ <p style="margin: 0 0 1.5rem 0; font-size: 0.875rem; color: #6b7280;">
67
+ Sign in to your tester account to submit bug reports.
68
+ </p>
69
+
70
+ <div style="margin-bottom: 1rem;">
71
+ <label style="display: block; font-size: 0.875rem; font-weight: 500; color: #374151; margin-bottom: 0.25rem;">
72
+ Email
73
+ </label>
74
+ <input id="__bugreport-auth-login-email__" type="email" placeholder="your@email.com" style="
75
+ width: 100%;
76
+ padding: 0.625rem 0.75rem;
77
+ border: 1px solid #d1d5db;
78
+ border-radius: 0.375rem;
79
+ font-size: 0.875rem;
80
+ " />
81
+ </div>
82
+
83
+ <div style="margin-bottom: 1.5rem;">
84
+ <label style="display: block; font-size: 0.875rem; font-weight: 500; color: #374151; margin-bottom: 0.25rem;">
85
+ Password
86
+ </label>
87
+ <input id="__bugreport-auth-login-password__" type="password" placeholder="••••••••" style="
88
+ width: 100%;
89
+ padding: 0.625rem 0.75rem;
90
+ border: 1px solid #d1d5db;
91
+ border-radius: 0.375rem;
92
+ font-size: 0.875rem;
93
+ " />
94
+ </div>
95
+
96
+ <div id="__bugreport-auth-login-error__" style="
97
+ display: none;
98
+ padding: 0.75rem;
99
+ background: #fee2e2;
100
+ color: #991b1b;
101
+ border-radius: 0.375rem;
102
+ font-size: 0.875rem;
103
+ margin-bottom: 1rem;
104
+ "></div>
105
+
106
+ <button id="__bugreport-auth-login-submit__" style="
107
+ width: 100%;
108
+ padding: 0.625rem;
109
+ background: #2563eb;
110
+ color: white;
111
+ border: none;
112
+ border-radius: 0.375rem;
113
+ font-size: 0.875rem;
114
+ font-weight: 500;
115
+ cursor: pointer;
116
+ ">Sign In</button>
117
+
118
+ <p style="margin-top: 1rem; text-align: center; font-size: 0.875rem; color: #6b7280;">
119
+ Don't have an account?
120
+ <a href="#" id="__bugreport-auth-show-register__" style="color: #2563eb; text-decoration: none;">Register</a>
121
+ </p>
122
+ </div>
123
+
124
+ <!-- Register form -->
125
+ <div id="__bugreport-auth-register__" style="display: none;">
126
+ <h2 style="margin: 0 0 0.5rem 0; font-size: 1.5rem; color: #111827;">Create Account</h2>
127
+ <p style="margin: 0 0 1.5rem 0; font-size: 0.875rem; color: #6b7280;">
128
+ Register to start submitting bug reports.
129
+ </p>
130
+
131
+ <div style="margin-bottom: 1rem;">
132
+ <label style="display: block; font-size: 0.875rem; font-weight: 500; color: #374151; margin-bottom: 0.25rem;">
133
+ Name
134
+ </label>
135
+ <input id="__bugreport-auth-register-name__" type="text" placeholder="John Doe" style="
136
+ width: 100%;
137
+ padding: 0.625rem 0.75rem;
138
+ border: 1px solid #d1d5db;
139
+ border-radius: 0.375rem;
140
+ font-size: 0.875rem;
141
+ " />
142
+ </div>
143
+
144
+ <div style="margin-bottom: 1rem;">
145
+ <label style="display: block; font-size: 0.875rem; font-weight: 500; color: #374151; margin-bottom: 0.25rem;">
146
+ Email
147
+ </label>
148
+ <input id="__bugreport-auth-register-email__" type="email" placeholder="your@email.com" style="
149
+ width: 100%;
150
+ padding: 0.625rem 0.75rem;
151
+ border: 1px solid #d1d5db;
152
+ border-radius: 0.375rem;
153
+ font-size: 0.875rem;
154
+ " />
155
+ </div>
156
+
157
+ <div style="margin-bottom: 1.5rem;">
158
+ <label style="display: block; font-size: 0.875rem; font-weight: 500; color: #374151; margin-bottom: 0.25rem;">
159
+ Password
160
+ </label>
161
+ <input id="__bugreport-auth-register-password__" type="password" placeholder="Minimum 8 characters" style="
162
+ width: 100%;
163
+ padding: 0.625rem 0.75rem;
164
+ border: 1px solid #d1d5db;
165
+ border-radius: 0.375rem;
166
+ font-size: 0.875rem;
167
+ " />
168
+ </div>
169
+
170
+ <div id="__bugreport-auth-register-error__" style="
171
+ display: none;
172
+ padding: 0.75rem;
173
+ background: #fee2e2;
174
+ color: #991b1b;
175
+ border-radius: 0.375rem;
176
+ font-size: 0.875rem;
177
+ margin-bottom: 1rem;
178
+ "></div>
179
+
180
+ <button id="__bugreport-auth-register-submit__" style="
181
+ width: 100%;
182
+ padding: 0.625rem;
183
+ background: #10b981;
184
+ color: white;
185
+ border: none;
186
+ border-radius: 0.375rem;
187
+ font-size: 0.875rem;
188
+ font-weight: 500;
189
+ cursor: pointer;
190
+ ">Create Account</button>
191
+
192
+ <p style="margin-top: 1rem; text-align: center; font-size: 0.875rem; color: #6b7280;">
193
+ Already have an account?
194
+ <a href="#" id="__bugreport-auth-show-login__" style="color: #2563eb; text-decoration: none;">Sign in</a>
195
+ </p>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ `;
200
+ document.body.appendChild(authModal);
201
+ // Event listeners
202
+ setupAuthEventListeners(apiBaseUrl);
203
+ }
204
+ function setupAuthEventListeners(apiBaseUrl) {
205
+ if (!authModal)
206
+ return;
207
+ // Close button
208
+ const closeBtn = authModal.querySelector('#__bugreport-auth-close__');
209
+ closeBtn?.addEventListener('click', closeAuthModal);
210
+ // Close on backdrop click
211
+ authModal.addEventListener('click', (e) => {
212
+ if (e.target === authModal) {
213
+ closeAuthModal();
214
+ }
215
+ });
216
+ // Toggle between login and register
217
+ const showRegisterBtn = authModal.querySelector('#__bugreport-auth-show-register__');
218
+ const showLoginBtn = authModal.querySelector('#__bugreport-auth-show-login__');
219
+ showRegisterBtn?.addEventListener('click', (e) => {
220
+ e.preventDefault();
221
+ showRegisterForm();
222
+ });
223
+ showLoginBtn?.addEventListener('click', (e) => {
224
+ e.preventDefault();
225
+ showLoginForm();
226
+ });
227
+ // Login form submission
228
+ const loginSubmit = authModal.querySelector('#__bugreport-auth-login-submit__');
229
+ const loginEmail = authModal.querySelector('#__bugreport-auth-login-email__');
230
+ const loginPassword = authModal.querySelector('#__bugreport-auth-login-password__');
231
+ loginSubmit?.addEventListener('click', async () => {
232
+ await handleLogin(apiBaseUrl, loginEmail.value, loginPassword.value);
233
+ });
234
+ loginEmail?.addEventListener('keypress', (e) => {
235
+ if (e.key === 'Enter')
236
+ loginSubmit?.dispatchEvent(new Event('click'));
237
+ });
238
+ loginPassword?.addEventListener('keypress', (e) => {
239
+ if (e.key === 'Enter')
240
+ loginSubmit?.dispatchEvent(new Event('click'));
241
+ });
242
+ // Register form submission
243
+ const registerSubmit = authModal.querySelector('#__bugreport-auth-register-submit__');
244
+ const registerName = authModal.querySelector('#__bugreport-auth-register-name__');
245
+ const registerEmail = authModal.querySelector('#__bugreport-auth-register-email__');
246
+ const registerPassword = authModal.querySelector('#__bugreport-auth-register-password__');
247
+ registerSubmit?.addEventListener('click', async () => {
248
+ await handleRegister(apiBaseUrl, registerName.value, registerEmail.value, registerPassword.value);
249
+ });
250
+ registerName?.addEventListener('keypress', (e) => {
251
+ if (e.key === 'Enter')
252
+ registerSubmit?.dispatchEvent(new Event('click'));
253
+ });
254
+ registerEmail?.addEventListener('keypress', (e) => {
255
+ if (e.key === 'Enter')
256
+ registerSubmit?.dispatchEvent(new Event('click'));
257
+ });
258
+ registerPassword?.addEventListener('keypress', (e) => {
259
+ if (e.key === 'Enter')
260
+ registerSubmit?.dispatchEvent(new Event('click'));
261
+ });
262
+ }
263
+ function showLoginForm() {
264
+ if (!authModal)
265
+ return;
266
+ const loginForm = authModal.querySelector('#__bugreport-auth-login__');
267
+ const registerForm = authModal.querySelector('#__bugreport-auth-register__');
268
+ loginForm.style.display = 'block';
269
+ registerForm.style.display = 'none';
270
+ clearErrors();
271
+ }
272
+ function showRegisterForm() {
273
+ if (!authModal)
274
+ return;
275
+ const loginForm = authModal.querySelector('#__bugreport-auth-login__');
276
+ const registerForm = authModal.querySelector('#__bugreport-auth-register__');
277
+ loginForm.style.display = 'none';
278
+ registerForm.style.display = 'block';
279
+ clearErrors();
280
+ }
281
+ function clearErrors() {
282
+ if (!authModal)
283
+ return;
284
+ const loginError = authModal.querySelector('#__bugreport-auth-login-error__');
285
+ const registerError = authModal.querySelector('#__bugreport-auth-register-error__');
286
+ loginError.style.display = 'none';
287
+ registerError.style.display = 'none';
288
+ loginError.textContent = '';
289
+ registerError.textContent = '';
290
+ }
291
+ function showLoginError(message) {
292
+ if (!authModal)
293
+ return;
294
+ const errorEl = authModal.querySelector('#__bugreport-auth-login-error__');
295
+ errorEl.textContent = message;
296
+ errorEl.style.display = 'block';
297
+ }
298
+ function showRegisterError(message) {
299
+ if (!authModal)
300
+ return;
301
+ const errorEl = authModal.querySelector('#__bugreport-auth-register-error__');
302
+ errorEl.textContent = message;
303
+ errorEl.style.display = 'block';
304
+ }
305
+ async function handleLogin(apiBaseUrl, email, password) {
306
+ clearErrors();
307
+ if (!email || !password) {
308
+ showLoginError('Please enter email and password');
309
+ return;
310
+ }
311
+ try {
312
+ const response = await login(apiBaseUrl, { email, password });
313
+ if (!response.success) {
314
+ showLoginError(response.error || 'Login failed');
315
+ return;
316
+ }
317
+ // Store token and tester info
318
+ if (response.token) {
319
+ setAuthToken(response.token);
320
+ }
321
+ if (response.tester) {
322
+ setTesterInfo(response.tester);
323
+ }
324
+ // Close modal and trigger success callback
325
+ closeAuthModal();
326
+ if (onSuccessCallback) {
327
+ onSuccessCallback();
328
+ }
329
+ }
330
+ catch (err) {
331
+ showLoginError('Network error. Please try again.');
332
+ }
333
+ }
334
+ async function handleRegister(apiBaseUrl, name, email, password) {
335
+ clearErrors();
336
+ if (!name || !email || !password) {
337
+ showRegisterError('All fields are required');
338
+ return;
339
+ }
340
+ if (password.length < 8) {
341
+ showRegisterError('Password must be at least 8 characters');
342
+ return;
343
+ }
344
+ try {
345
+ const response = await register(apiBaseUrl, { email, name, password });
346
+ if (!response.success) {
347
+ showRegisterError(response.error || 'Registration failed');
348
+ return;
349
+ }
350
+ // Store token and tester info
351
+ if (response.token) {
352
+ setAuthToken(response.token);
353
+ }
354
+ if (response.tester) {
355
+ setTesterInfo(response.tester);
356
+ }
357
+ // Close modal and trigger success callback
358
+ closeAuthModal();
359
+ if (onSuccessCallback) {
360
+ onSuccessCallback();
361
+ }
362
+ }
363
+ catch (err) {
364
+ showRegisterError('Network error. Please try again.');
365
+ }
366
+ }
367
+ /**
368
+ * Open the authentication modal
369
+ */
370
+ export function openAuthModal(onSuccess) {
371
+ if (!authModal) {
372
+ console.error('Auth modal not initialized');
373
+ return;
374
+ }
375
+ onSuccessCallback = onSuccess || null;
376
+ authModal.style.display = 'flex';
377
+ isOpen = true;
378
+ showLoginForm();
379
+ clearErrors();
380
+ }
381
+ /**
382
+ * Close the authentication modal
383
+ */
384
+ export function closeAuthModal() {
385
+ if (!authModal)
386
+ return;
387
+ authModal.style.display = 'none';
388
+ isOpen = false;
389
+ onSuccessCallback = null;
390
+ clearErrors();
391
+ }
392
+ /**
393
+ * Destroy the authentication modal
394
+ */
395
+ export function destroyAuthModal() {
396
+ if (authModal) {
397
+ authModal.remove();
398
+ authModal = null;
399
+ isOpen = false;
400
+ onSuccessCallback = null;
401
+ }
402
+ }
403
+ //# sourceMappingURL=authModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authModal.js","sourceRoot":"","sources":["../../src/widget/authModal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAiB,MAAM,oBAAoB,CAAC;AAEjG,IAAI,SAAS,GAAuB,IAAI,CAAC;AACzC,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,IAAI,iBAAiB,GAAwB,IAAI,CAAC;AAElD,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,IAAI,SAAS;QAAE,OAAO,CAAC,sBAAsB;IAE7C,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,GAAG,0BAA0B,CAAC;IAC1C,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;GASzB,CAAC;IAEF,SAAS,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqKrB,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAErC,kBAAkB;IAClB,uBAAuB,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB;IACjD,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,eAAe;IACf,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IACtE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAEpD,0BAA0B;IAC1B,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACxC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,eAAe,GAAG,SAAS,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAE/E,eAAe,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,gBAAgB,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,YAAY,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QAC5C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,iCAAiC,CAAqB,CAAC;IAClG,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,oCAAoC,CAAqB,CAAC;IAExG,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,UAAU,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;QAC7C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,WAAW,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,aAAa,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;QAChD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,WAAW,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC;IACtF,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,mCAAmC,CAAqB,CAAC;IACtG,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,oCAAoC,CAAqB,CAAC;IACxG,MAAM,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC,uCAAuC,CAAqB,CAAC;IAE9G,cAAc,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;IAEH,YAAY,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,cAAc,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,aAAa,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;QAChD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,cAAc,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,gBAAgB,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;QACnD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE,cAAc,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,2BAA2B,CAAgB,CAAC;IACtF,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAgB,CAAC;IAE5F,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAEpC,WAAW,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,2BAA2B,CAAgB,CAAC;IACtF,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,8BAA8B,CAAgB,CAAC;IAE5F,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACjC,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAErC,WAAW,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,iCAAiC,CAAgB,CAAC;IAC7F,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,oCAAoC,CAAgB,CAAC;IAEnG,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAClC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACrC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC;IAC5B,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,iCAAiC,CAAgB,CAAC;IAC1F,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAClC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,oCAAoC,CAAgB,CAAC;IAC7F,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,UAAkB,EAAE,KAAa,EAAE,QAAgB;IAC5E,WAAW,EAAE,CAAC;IAEd,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,cAAc,CAAC,iCAAiC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,cAAc,CAAC,QAAQ,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,2CAA2C;QAC3C,cAAc,EAAE,CAAC;QACjB,IAAI,iBAAiB,EAAE,CAAC;YACtB,iBAAiB,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,cAAc,CAAC,kCAAkC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,UAAkB,EAAE,IAAY,EAAE,KAAa,EAAE,QAAgB;IAC7F,WAAW,EAAE,CAAC;IAEd,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,iBAAiB,CAAC,wCAAwC,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,iBAAiB,CAAC,QAAQ,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,2CAA2C;QAC3C,cAAc,EAAE,CAAC;QACjB,IAAI,iBAAiB,EAAE,CAAC;YACtB,iBAAiB,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,SAAsB;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,iBAAiB,GAAG,SAAS,IAAI,IAAI,CAAC;IACtC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACjC,MAAM,GAAG,IAAI,CAAC;IACd,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACjC,MAAM,GAAG,KAAK,CAAC;IACf,iBAAiB,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,MAAM,EAAE,CAAC;QACnB,SAAS,GAAG,IAAI,CAAC;QACjB,MAAM,GAAG,KAAK,CAAC;QACf,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -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;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"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAY/D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAmQD,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,CA+DpF;AAED,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,CAU3D"}
@@ -1,6 +1,8 @@
1
1
  import { buildReportPayload } from '../utils/payloadBuilder';
2
- import { submitReport } from '../utils/apiClient';
2
+ import { submitReport, getAuthToken, getTesterInfo } from '../utils/apiClient';
3
3
  import { capturePageScreenshot } from '../utils/screenshotCapture';
4
+ import { openAnnotationEditor } from './annotationEditor';
5
+ import { initAuthModal, openAuthModal } from './authModal';
4
6
  const SUCCESS_AUTO_CLOSE_DELAY_MS = 4000;
5
7
  const MODAL_ID = '__bugreport_modal__';
6
8
  const OVERLAY_ID = '__bugreport_overlay__';
@@ -262,6 +264,18 @@ let modalOpenedAt = 0;
262
264
  export function openModal(config, callbacks) {
263
265
  if (document.getElementById(MODAL_ID))
264
266
  return;
267
+ // Initialize auth modal if not already done
268
+ initAuthModal(config.apiBaseUrl);
269
+ // Check if authentication is required
270
+ const requiresAuth = config.requireAuth === true;
271
+ const isAuthenticated = !!getAuthToken() && !!getTesterInfo();
272
+ if (requiresAuth && !isAuthenticated) {
273
+ // Show auth modal first, then open bug report modal on success
274
+ openAuthModal(() => {
275
+ openModal(config, callbacks);
276
+ });
277
+ return;
278
+ }
265
279
  injectStyles();
266
280
  modalOpenedAt = Date.now();
267
281
  const overlay = document.createElement('div');
@@ -350,12 +364,23 @@ async function handleCaptureScreenshot(captureBtn) {
350
364
  if (overlay)
351
365
  overlay.style.display = '';
352
366
  if (dataUrl && preview && captureContainer) {
353
- preview.src = dataUrl;
354
- preview.style.display = 'block';
355
- captureContainer.value = dataUrl;
356
- // Clear the file input so the capture takes precedence
357
- if (fileInput)
358
- fileInput.value = '';
367
+ // Open annotation editor
368
+ openAnnotationEditor({
369
+ imageDataUrl: dataUrl,
370
+ onSave: (annotatedDataUrl) => {
371
+ // Save annotated screenshot
372
+ preview.src = annotatedDataUrl;
373
+ preview.style.display = 'block';
374
+ captureContainer.value = annotatedDataUrl;
375
+ // Clear the file input so the capture takes precedence
376
+ if (fileInput)
377
+ fileInput.value = '';
378
+ },
379
+ onCancel: () => {
380
+ // User cancelled annotation, don't save screenshot
381
+ // Just reset the button
382
+ },
383
+ });
359
384
  }
360
385
  }
361
386
  catch {
@@ -394,7 +419,13 @@ async function handleSubmit(form, config, callbacks) {
394
419
  else if (values.screenshot) {
395
420
  formData.append('screenshot', values.screenshot);
396
421
  }
397
- const result = await submitReport({ apiBaseUrl: config.apiBaseUrl, formData });
422
+ // Get auth token if user is logged in
423
+ const authToken = getAuthToken();
424
+ const result = await submitReport({
425
+ apiBaseUrl: config.apiBaseUrl,
426
+ formData,
427
+ authToken,
428
+ });
398
429
  setFormState(form, 'success');
399
430
  }
400
431
  catch (err) {
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAwMN,QAAQ;;;;;SAKR,UAAU;;;;;GAKhB,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;;;GAYG;AACH,qDAAqD;AACrD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,MAAM,UAAU,SAAS,CAAC,MAAyB,EAAE,SAAyB;IAC5E,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO;IAE9C,YAAY,EAAE,CAAC;IACf,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC;IAExB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;IAE7D,KAAK,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEnC,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAChE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEnD,8EAA8E;IAC9E,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjB,8EAA8E;IAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACjE,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAA2B,CAAC;IACrF,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAuB,CAAC;IACxF,UAAU,EAAE,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAA0B;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,uBAAuB,CAAC;QACnD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACtD,SAAS,EAAE,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,iFAAiF;AAEjF,SAAS,SAAS,CAAC,SAAsB;IACvC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO;QAE5B,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAC1C,kEAAkE,CACnE,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACnD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC1D,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF,SAAS,YAAY,CAAC,CAAgB;IACpC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;QAAE,UAAU,EAAE,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,UAAuB;IAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAA4B,CAAC;IAC7F,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAA4B,CAAC;IAC1F,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAA4B,CAAC;IAEnG,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5C,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC;IAEzC,IAAI,CAAC;QACH,mEAAmE;QACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAE5C,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAE9C,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QAExC,IAAI,OAAO,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAChC,gBAAgB,CAAC,KAAK,GAAG,OAAO,CAAC;YACjC,uDAAuD;YACvD,IAAI,SAAS;gBAAE,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IAED,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACvC,UAAU,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAqB,EACrB,MAAyB,EACzB,SAAyB;IAEzB,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEvC,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG;YACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS;SACV,CAAC;QAEF,MAAM,QAAQ,GAAG,kBAAkB,CACjC;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAiD;YAClE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;YAChC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SACnC,EACD,MAAM,CACP,CAAC;QAEF,2EAA2E;QAC3E,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACtD,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7B,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE/E,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAqB;IAa9C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,UAAU,GAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAsB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACtG,MAAM,kBAAkB,GAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAsB,EAAE,KAAK,IAAI,EAAE,CAAC;IACzG,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;QAClD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACpD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACxD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACpD,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC5D,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,UAAU;QACV,kBAAkB;QAClB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC;AAID,SAAS,YAAY,CAAC,IAAqB,EAAE,KAAgB,EAAE,OAAgB;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAA6B,CAAC;IAC1F,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAEjE,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEpC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;IAE3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,SAAS,CAAC,WAAW,GAAG,aAAa,CAAC;IACxC,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,SAAS,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAC5C,QAAQ,CAAC,SAAS,GAAG,qBAAqB,CAAC;QAC3C,QAAQ,CAAC,WAAW,GAAG,sCAAsC,CAAC;QAC9D,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,2BAA2B,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7B,SAAS,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAC5C,QAAQ,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACzC,QAAQ,CAAC,WAAW,GAAG,KAAK,OAAO,IAAI,yCAAyC,EAAE,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,iCAAiC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;IACxD,MAAM,YAAY,GAAG,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IAE/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFA0EwE,YAAY;;;yBAGpE,UAAU;;;;;;;;;;;;;;;;;;;;;GAqBhC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/widget/modal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limekex/bugreport-widget-sdk",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "description": "Browser SDK for embedding the Stage Bug Reporter widget into staging/UAT applications",
5
5
  "keywords": [
6
6
  "bug-reporter",