@sirendesign/markup 1.0.9 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,12 +14,16 @@ A powerful web markup and feedback tool for collecting visual feedback from clie
14
14
 
15
15
  ## Features
16
16
 
17
- - 📸 **Screenshot Capture** - Capture full-page screenshots with one click
17
+ - 📸 **Screenshot Capture** - Capture viewport screenshots with one click
18
18
  - ✏️ **Annotation Tools** - Add arrows, rectangles, circles, highlights, text, and freehand drawings
19
- - ✂️ **Copy Amendments** - Track text changes with before/after comparison
19
+ - ✂️ **Copy Amendments** - Click on text to suggest changes with before/after comparison
20
+ - 📋 **Session Activity Timeline** - Records user interactions (clicks, navigation, scrolls, inputs) during the session
21
+ - 🎨 **Design Mockup Overlay** - Upload mockups and overlay them on the live site for pixel-perfect comparison
22
+ - 🔍 **Component Detection** - Automatically identifies React components and HTML elements
20
23
  - 💬 **Feedback Management** - Create, view, and manage feedback items
21
- - 🏷️ **Tags & Priority** - Organize feedback with custom tags and priority levels
24
+ - 🏷️ **Tags & Priority** - Organize feedback with custom tags and priority levels (Low, Medium, High, Critical)
22
25
  - 📊 **Status Tracking** - Track feedback status (Open, In Progress, Resolved, Closed)
26
+ - 👥 **Role-Based Permissions** - Edit/Delete restricted to developers and feedback creators
23
27
  - 💾 **Local or Cloud Storage** - Works offline or with Firebase sync
24
28
  - 🔌 **API Integration** - Optional API endpoint for server-side storage
25
29
  - ⌨️ **Keyboard Shortcuts** - Quick access with customizable shortcuts
@@ -293,26 +297,35 @@ Override CSS variables for custom theming:
293
297
  />
294
298
  ```
295
299
 
296
- ## Types
300
+ ## Advanced Features
297
301
 
298
- ```typescript
299
- import type {
300
- FeedbackItem,
301
- FeedbackStatus,
302
- FeedbackPriority,
303
- Annotation,
304
- AnnotationType,
305
- UserInfo,
306
- Comment,
307
- MarkupConfig,
308
- } from '@company/markup';
309
- ```
302
+ ### Session Activity Timeline
310
303
 
311
- ## Development
304
+ The widget automatically tracks user interactions during their session, including:
305
+ - **Clicks** - Element details, text content, HTML structure
306
+ - **Navigation** - URL changes and page visits
307
+ - **Scrolling** - Scroll position changes
308
+ - **Input Events** - Form interactions (values are masked for privacy)
309
+
310
+ When viewing feedback, click "Play Session" to see a chronological timeline of these actions, helping developers understand the user's journey before reporting an issue.
311
+
312
+ ### Design Mockup Overlay
313
+
314
+ Upload a design mockup image and overlay it on the live site to compare:
315
+ 1. Click "Upload Design Mockup" when creating feedback
316
+ 2. Select your design file (PNG, JPG, SVG)
317
+ 3. View the feedback and toggle the overlay with opacity slider
318
+ 4. Perfect for pixel-perfect QA and design review
319
+
320
+ ### Component Detection
321
+
322
+ The tool automatically identifies:
323
+ - React component names (from `data-component` or React Fiber)
324
+ - HTML element structure (tag, id, classes)
325
+ - Text content of clicked elements
326
+
327
+ This information is attached to copy amendment feedback to help developers locate exact elements in code.
312
328
 
313
- ```bash
314
- # Install dependencies
315
- npm install
316
329
 
317
330
  # Build the package
318
331
  npm run build
@@ -3,6 +3,10 @@ import type { FeedbackItem } from "../types";
3
3
  interface FeedbackFormProps {
4
4
  onSubmit: (feedback: FeedbackItem) => void;
5
5
  onCancel: () => void;
6
+ initialData?: FeedbackItem;
7
+ getSessionEvents?: () => string | undefined;
8
+ lastClickedElement?: Element | null;
9
+ lastClickedText?: string;
6
10
  }
7
11
  export declare const FeedbackForm: React.FC<FeedbackFormProps>;
8
12
  export default FeedbackForm;
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- interface IconProps extends React.SVGProps<SVGSVGElement> {
1
+ import React from "react";
2
+ export interface IconProps extends React.SVGProps<SVGSVGElement> {
3
3
  className?: string;
4
4
  }
5
5
  export declare const MessageIcon: React.FC<IconProps>;
@@ -17,6 +17,7 @@ export declare const BackIcon: React.FC<IconProps>;
17
17
  export declare const TrashIcon: React.FC<IconProps>;
18
18
  export declare const DownloadIcon: React.FC<IconProps>;
19
19
  export declare const EditIcon: React.FC<IconProps>;
20
+ export declare const CopyIcon: React.FC<IconProps>;
20
21
  export declare const ClockIcon: React.FC<IconProps>;
21
22
  export declare const LinkIcon: React.FC<IconProps>;
22
23
  export declare const InboxIcon: React.FC<IconProps>;
@@ -33,4 +34,6 @@ export declare const UserIcon: React.FC<IconProps>;
33
34
  export declare const ZoomInIcon: React.FC<IconProps>;
34
35
  export declare const CalendarIcon: React.FC<IconProps>;
35
36
  export declare const ChevronRightIcon: React.FC<IconProps>;
36
- export {};
37
+ export declare const DesktopIcon: React.FC<IconProps>;
38
+ export declare const TabletIcon: React.FC<IconProps>;
39
+ export declare const MobileIcon: React.FC<IconProps>;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { IconProps } from './Icons';
3
+ export declare const PlayIcon: React.FC<IconProps>;
4
+ export declare const LayersIcon: React.FC<IconProps>;
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const ViewportControls: React.FC;
@@ -4,3 +4,4 @@ export { FeedbackList } from './FeedbackList';
4
4
  export { FeedbackDetail } from './FeedbackDetail';
5
5
  export { AnnotationOverlay } from './AnnotationOverlay';
6
6
  export { DebugPanel } from './DebugPanel';
7
+ export { ViewportControls } from './ViewportControls';
@@ -0,0 +1,4 @@
1
+ export declare const useSessionRecording: () => {
2
+ getSessionEvents: () => string | undefined;
3
+ clearSession: () => void;
4
+ };