mesurer 0.1.5 → 0.2.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # mesurer
2
2
 
3
+ ## 0.2.1
4
+
5
+ - add selected-region video recording with Chrome tab capture
6
+ - add recording playback, trimming, scaling, and WebM/MP4 export where supported
7
+ - add the Screenshot/Screen record capture menu
8
+ - improve recording crop mapping, frame capture, lifecycle cleanup, and extension playback
9
+ - improve toolbar persistence across reloads and same-tab navigation
10
+ - improve transparent overlay selection and extension capture behavior
11
+
12
+ ## 0.2.0
13
+
14
+ - add configurable column, row, and pixel layout guides with selection, keyboard controls, persistence, and undo/redo
15
+ - scope workspaces to page URLs and preserve guides, comments, measurements, and annotations across navigation and reloads
16
+ - improve inspect selection, transparent and iframe targets, spacing geometry, typography details, and guide-linked distances
17
+ - improve arrow, pen, and text annotation selection, transforms, cursors, and group editing
18
+ - improve comment threads with replies, editing, deletion, resolve/reopen actions, selector copying, tooltips, and safer draft dismissal
19
+ - improve toolbar dragging, menu stacking, minimization, restoration, and overlay lifecycle behavior
20
+ - add dark mode and theme-aware controls across the toolbar, comments, settings, and menus
21
+ - improve keyboard ownership, host-page focus handling, CSS isolation, and overlay stacking
22
+ - improve color picker, screenshot, ruler, and settings interactions
23
+ - improve the Chrome extension across reloads, SPA navigation, host recovery, tab persistence, screenshots, and per-tab workspaces
24
+
3
25
  ## 0.1.5
4
26
 
5
27
  - add DOM-attached comment threads with replies, persistence, iframe and Shadow DOM targets, and agent-ready copy
package/PRIVACY.md CHANGED
@@ -1,63 +1,82 @@
1
1
  # Privacy Policy
2
2
 
3
+ Last updated: 30 September 2026
4
+
3
5
  ## Mesurer
4
6
 
5
- Mesurer is a lightweight tool to measure distances, check alignment, and display visual guides directly on web pages in the browser.
7
+ Mesurer includes a browser tool, an npm package, a Chrome extension, and hosted platform features for reviewing deployed web projects.
8
+
9
+ ## Local browser features
10
+
11
+ The browser tool and Chrome extension store settings, guides, measurements, comments, and page workspaces locally in your browser where possible. This local data is not sent to Mesurer servers by the extension's local features.
12
+
13
+ Mesurer does not use the extension to sell or transfer your browsing history or website content for advertising.
6
14
 
7
- ## Data Collection
15
+ ## Platform data
8
16
 
9
- Mesurer does not collect, store, or transmit personal data.
17
+ When you use hosted platform features, Mesurer may process:
10
18
 
11
- Mesurer does not collect:
19
+ - account details provided by your authentication provider, such as your name, email address, and profile image
20
+ - project, deployment, and website origin information
21
+ - comments, screenshots, review data, and content you choose to share
22
+ - subscription and billing status
12
23
 
13
- - personally identifiable information
14
- - authentication credentials
15
- - financial or health information
16
- - web history
17
- - user activity analytics
18
- - website content for external processing
24
+ This information is used to authenticate you, provide projects and reviews, share content at your direction, secure the service, and manage subscriptions.
25
+
26
+ ## Authentication and payments
27
+
28
+ Mesurer may use GitHub or Google for sign-in. Those providers process information under their own privacy policies.
29
+
30
+ Payments may be handled by third-party payment providers. Mesurer does not intend to store full payment card details on its own systems.
19
31
 
20
32
  ## Permissions
21
33
 
22
34
  ### activeTab
23
35
 
24
- Used only when the user explicitly activates the extension, to run Mesurer on the current tab.
36
+ Used when you explicitly activate the extension to run Mesurer on the current tab.
37
+
38
+ ### host permissions
39
+
40
+ Mesurer requests access to HTTP and HTTPS pages so it can run on regular websites and restore the toolbar across reloads and in-site navigations. This access is not used to send page content off-device by the local extension features.
25
41
 
26
42
  ### scripting
27
43
 
28
- Used to inject the extension script into the active page to render measurement overlays and guides.
44
+ Used to inject the extension script into the active page to render measurement overlays and guides. The script may be re-injected when a tab navigates so the toolbar can stay available.
29
45
 
30
46
  ### storage
31
47
 
32
- Used to store Mesurer settings and page workspaces locally in Chrome. This data stays in the
33
- browser and is not sent to Mesurer servers. This includes comment threads and their replies.
48
+ Used to store Mesurer settings and page workspaces locally in Chrome. This includes comment threads and replies created through local features.
34
49
 
35
50
  ### clipboardWrite
36
51
 
37
- Used when the user chooses to copy a selected screenshot or sampled color to the clipboard.
52
+ Used when you choose to copy a selected screenshot or sampled color to the clipboard.
38
53
 
39
- ## Screenshot Capture
54
+ ### tabCapture
40
55
 
41
- Screenshot captures are initiated by the user and contain only the selected region of the
42
- currently visible tab. In the Chrome extension, capture is performed locally through Chrome's
43
- visible-tab capture API. In a React integration without the extension, Chrome may show its native
44
- tab-sharing prompt through `getDisplayMedia()`.
56
+ Used only after you explicitly choose the video recording feature. It captures the active browser tab so Mesurer can record the region you select. The captured stream is processed locally in the browser and is not sent to Mesurer or any third party.
45
57
 
46
- Screenshots are copied to the local clipboard or downloaded locally according to the user's
47
- settings. Mesurer does not upload or externally process screenshots.
58
+ ### offscreen
48
59
 
49
- ## Remote Code
60
+ Used to create the offscreen document required by Chrome Manifest V3 to process tab recordings. The offscreen document crops and encodes the selected region locally after you start recording. It does not collect or transmit page content.
50
61
 
51
- Mesurer does not use remote code.
62
+ ## Screenshot and recording capture
52
63
 
53
- All JavaScript/Wasm executed by the extension is packaged with the extension bundle.
64
+ Captures are initiated by you and contain only the region you select. In the Chrome extension, screenshots are captured locally through Chrome's visible-tab capture API. In a React integration without the extension, Chrome may show its native tab-sharing prompt through `getDisplayMedia()`.
54
65
 
55
- ## Data Sharing
66
+ Screenshots and recordings are processed locally and are copied to the local clipboard, stored temporarily in local extension storage, or downloaded locally according to your actions. Mesurer does not upload or externally process these captures unless you explicitly share them through a hosted platform feature.
56
67
 
57
- Mesurer does not sell or transfer user data to third parties.
68
+ Video recordings are stored temporarily in the extension's local IndexedDB storage so they can be previewed, trimmed, and exported. Recordings remain on the device and are not uploaded. They can be removed through the recording editor or by clearing the browser's extension storage.
58
69
 
59
- ## Contact
70
+ ## Data sharing and retention
71
+
72
+ Mesurer shares hosted project and review content only as needed to provide a feature you request, such as a review link or project invitation. Anyone with access to a shared review link may be able to view the content included in that review.
73
+
74
+ Hosted data is retained while needed to provide the service, maintain account records, resolve disputes, and meet legal obligations. You may contact us to ask about your data or request deletion, subject to applicable legal and operational requirements.
60
75
 
61
- For questions, open an issue on GitHub:
76
+ ## Remote code
77
+
78
+ The Chrome extension does not use remote code. JavaScript and WebAssembly executed by the extension are packaged with the extension bundle.
79
+
80
+ ## Contact
62
81
 
63
- https://github.com/ibelick/mesurer/issues
82
+ For privacy questions or requests, contact [contact@interfaceoffice.com](mailto:contact@interfaceoffice.com).
package/README.md CHANGED
@@ -17,7 +17,7 @@ Mesurer runs directly where you build. Share feedback with your agents and your
17
17
  Mesurer is an open-source UI inspector and visual feedback tool for the browser.
18
18
  Use guides, rulers, measurements, arrows, freehand pen strokes, text annotations,
19
19
  color inspection, typography tools, X-ray mode, and screenshots to understand interfaces and communicate precise
20
- visual feedback to coding agents.
20
+ visual feedback to coding agents. Capture a short video of any visible region to show interaction details that a screenshot cannot.
21
21
 
22
22
  [Full documentation](https://mesurer.dev/)
23
23
 
@@ -89,6 +89,7 @@ Props are the defaults. Saved settings override them; **Use defaults** restores
89
89
  | `2` | Switch to the Annotate tools. |
90
90
  | `P` | Open the native color sampler. |
91
91
  | `C` | Drag a region of the visible tab for a screenshot. |
92
+ | `V` | Drag a region of the visible tab to record a video. |
92
93
  | `G` | Toggle Guides mode. |
93
94
  | `X` | Toggle X-ray mode. |
94
95
  | `R` | Toggle pixel rulers along the top and left edges. |
@@ -115,22 +116,24 @@ Props are the defaults. Saved settings override them; **Use defaults** restores
115
116
  - **Inspect mode** - Click elements to measure their bounds
116
117
  - **Annotation tools** - Draw arrows, freehand pen strokes, and text notes
117
118
  - **Annotation selection** - Select, move, resize, rotate, delete, and multi-select annotations
118
- - **Guides mode** - Add and drag vertical or horizontal guides
119
+ - **Guides mode** - Add configurable column, row, and pixel grid guides
119
120
  - **Rulers** - Drag guides from pixel rulers along the top and left edges
120
121
  - **Typography** - Inspect typography styles and pin text details
121
122
  - **X-ray mode** - Reveal element structure without changing the page
122
123
  - **Sample color** - Sample rendered colors and copy values in your chosen format
123
124
  - **Screenshot** - Drag a region of the visible tab and copy or download it. In a React integration without the extension, the browser may show a tab-sharing prompt.
125
+ - **Video recording** - Drag a region of the visible tab, record up to 60 seconds, trim the result, and export it as WebM or MP4 when supported. The Chrome extension records the active tab without a second sharing prompt.
124
126
  - **Distance overlays** - Hold Alt for quick spacing checks
125
127
  - **Undo/redo** - Command history for guides, measurements, arrows, pen strokes, and text annotations
126
128
  - **Comments** - Pin threads to live elements, add replies, move targets, search threads, and copy structured feedback for agents
127
129
  - **Settings** - Configure selection, guide, ruler, arrow, text, color, format, and persistence behavior
128
- - **Workspace controls** - Restore defaults or clear guides, measurements, and annotations; minimize Mesurer to a single toolbar button
130
+ - **Workspace controls** - Persist page workspaces, restore defaults, clear annotations, and minimize Mesurer to a single toolbar button
129
131
 
130
132
  ## Requirements
131
133
 
132
134
  - React 18+
133
135
  - Chromium-based browser. The native screen color picker requires Chromium on Windows or macOS; Linux Chromium builds may not expose the EyeDropper API.
136
+ - Video recording uses the Chrome extension's tab-capture integration for the smoothest active-tab workflow. Without the extension, browser capture permissions and supported export formats depend on the browser.
134
137
 
135
138
  Settings are stored separately from workspace state. The default adapter uses `localStorage`; integrations can provide a `persistence` adapter such as the browser extension's `chrome.storage.local` implementation.
136
139