@uxbertlabs/reportly 1.0.1 → 1.0.3

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.
@@ -0,0 +1,95 @@
1
+ export interface ReportlyConfig {
2
+ ui: {
3
+ position: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
4
+ theme: 'light' | 'dark';
5
+ };
6
+ features: {
7
+ annotation: boolean;
8
+ deviceInfo: boolean;
9
+ };
10
+ }
11
+ export interface IssueData {
12
+ title: string;
13
+ description: string;
14
+ priority: 'Low' | 'Medium' | 'High' | 'Critical';
15
+ }
16
+ export interface CompleteIssue extends IssueData {
17
+ screenshot: string;
18
+ deviceInfo: DeviceInfoData;
19
+ createdAt: string;
20
+ }
21
+ export interface DeviceInfoData {
22
+ browser: string;
23
+ os: string;
24
+ screenResolution: string;
25
+ viewport: string;
26
+ url: string;
27
+ timestamp: string;
28
+ userAgent: string;
29
+ language: string;
30
+ platform: string;
31
+ cookiesEnabled: boolean;
32
+ onLine: boolean;
33
+ }
34
+ export interface SavedIssue extends CompleteIssue {
35
+ savedAt: string;
36
+ id: number;
37
+ }
38
+ export interface ButtonCallbacks {
39
+ onClick: () => void;
40
+ }
41
+ export interface ModalCallbacks {
42
+ onSubmit: (issueData: IssueData) => void;
43
+ onClose: () => void;
44
+ onAnnotate: () => void;
45
+ onRetake: () => void;
46
+ }
47
+ export interface ToolbarCallbacks {
48
+ onToolChange: (tool: AnnotationTool) => void;
49
+ onColorChange: (color: string) => void;
50
+ onUndo: () => void;
51
+ onClear: () => void;
52
+ onDone: () => void;
53
+ onExit: () => void;
54
+ }
55
+ export type AnnotationTool = 'pen' | 'arrow' | 'rectangle' | 'text';
56
+ export type StateType = 'idle' | 'annotating' | 'capturing';
57
+ export interface Point {
58
+ x: number;
59
+ y: number;
60
+ }
61
+ export interface BaseAnnotation {
62
+ tool: AnnotationTool;
63
+ color: string;
64
+ }
65
+ export interface PenAnnotation extends BaseAnnotation {
66
+ tool: 'pen';
67
+ path: Point[];
68
+ lineWidth: number;
69
+ }
70
+ export interface ArrowAnnotation extends BaseAnnotation {
71
+ tool: 'arrow';
72
+ startX: number;
73
+ startY: number;
74
+ endX: number;
75
+ endY: number;
76
+ }
77
+ export interface RectangleAnnotation extends BaseAnnotation {
78
+ tool: 'rectangle';
79
+ startX: number;
80
+ startY: number;
81
+ endX: number;
82
+ endY: number;
83
+ }
84
+ export interface TextAnnotation extends BaseAnnotation {
85
+ tool: 'text';
86
+ x: number;
87
+ y: number;
88
+ text: string;
89
+ }
90
+ export type Annotation = PenAnnotation | ArrowAnnotation | RectangleAnnotation | TextAnnotation;
91
+ export type EventCallback = (data: any) => void;
92
+ export interface EventListeners {
93
+ [event: string]: EventCallback[];
94
+ }
95
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ButtonCallbacks } from '../types';
2
+ import type Config from '../core/config';
3
+ declare class Button {
4
+ private config;
5
+ private callbacks;
6
+ private button;
7
+ constructor(config: Config, callbacks: ButtonCallbacks);
8
+ create(): HTMLButtonElement;
9
+ show(): void;
10
+ hide(): void;
11
+ destroy(): void;
12
+ }
13
+ export default Button;
14
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/ui/button.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,cAAM,MAAM;IACV,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe;IAMtD,MAAM,IAAI,iBAAiB;IAgB3B,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAMZ,OAAO,IAAI,IAAI;CAMhB;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ModalCallbacks } from '../types';
2
+ import type Config from '../core/config';
3
+ declare class Modal {
4
+ private callbacks;
5
+ private overlay;
6
+ private modal;
7
+ constructor(_config: Config, callbacks: ModalCallbacks);
8
+ create(): HTMLDivElement;
9
+ private attachEventListeners;
10
+ private handleSubmit;
11
+ open(): void;
12
+ close(): void;
13
+ setScreenshot(screenshot: string | null): void;
14
+ private reset;
15
+ destroy(): void;
16
+ }
17
+ export default Modal;
18
+ //# sourceMappingURL=modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/ui/modal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,cAAM,KAAK;IACT,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAAwB;gBAEzB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc;IAMtD,MAAM,IAAI,cAAc;IA+ExB,OAAO,CAAC,oBAAoB;IA0C5B,OAAO,CAAC,YAAY;IA2BpB,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAQb,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAc9C,OAAO,CAAC,KAAK;IASb,OAAO,IAAI,IAAI;CAOhB;AAED,eAAe,KAAK,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ToolbarCallbacks, AnnotationTool } from '../types';
2
+ declare class Toolbar {
3
+ private callbacks;
4
+ private toolbar;
5
+ private toggleButton;
6
+ private isToolbarExpanded;
7
+ private currentTool;
8
+ private currentColor;
9
+ constructor(callbacks: ToolbarCallbacks);
10
+ create(): HTMLDivElement;
11
+ private attachEventListeners;
12
+ setTool(tool: AnnotationTool): void;
13
+ setColor(color: string): void;
14
+ private toggleToolbar;
15
+ show(): void;
16
+ hide(): void;
17
+ destroy(): void;
18
+ }
19
+ export default Toolbar;
20
+ //# sourceMappingURL=toolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../src/ui/toolbar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEjE,cAAM,OAAO;IACX,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,YAAY,CAAS;gBAEjB,SAAS,EAAE,gBAAgB;IASvC,MAAM,IAAI,cAAc;IAiDxB,OAAO,CAAC,oBAAoB;IAqE5B,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAcnC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAc7B,OAAO,CAAC,aAAa;IAarB,IAAI,IAAI,IAAI;IAqBZ,IAAI,IAAI,IAAI;IAUZ,OAAO,IAAI,IAAI;CAUhB;AAED,eAAe,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,18 @@
1
1
  {
2
2
  "name": "@uxbertlabs/reportly",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "A simple JavaScript plugin for reporting UI issues with screenshots and annotations",
5
- "main": "dist/reportly.js",
5
+ "main": "dist/reportly.cjs.js",
6
+ "module": "dist/reportly.esm.js",
7
+ "types": "dist/core/init.d.ts",
6
8
  "type": "module",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/reportly.esm.js",
12
+ "require": "./dist/reportly.cjs.js",
13
+ "types": "./dist/core/init.d.ts"
14
+ }
15
+ },
7
16
  "files": [
8
17
  "dist"
9
18
  ],
@@ -23,8 +32,12 @@
23
32
  "devDependencies": {
24
33
  "@rollup/plugin-node-resolve": "^15.2.3",
25
34
  "@rollup/plugin-terser": "^0.4.4",
35
+ "@rollup/plugin-typescript": "^12.1.4",
36
+ "@types/html2canvas": "^0.5.35",
26
37
  "rollup": "^4.9.0",
27
- "rollup-plugin-postcss": "^4.0.2"
38
+ "rollup-plugin-postcss": "^4.0.2",
39
+ "tslib": "^2.8.1",
40
+ "typescript": "^5.9.3"
28
41
  },
29
42
  "dependencies": {
30
43
  "html2canvas": "^1.4.1"