mesurer-solid 0.2.3-beta.1 → 0.2.3-beta.10
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/AGENT_INTEGRATION.md +1 -0
- package/README.md +3 -0
- package/dist/context.d.ts +15 -0
- package/dist/core.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5403 -3938
- package/dist/inject-script.js +74 -33
- package/dist/inject.js +5397 -3926
- package/dist/plugins.js +1898 -1704
- package/package.json +1 -1
- package/skills/mesurer-ui/SKILL.md +2 -1
package/AGENT_INTEGRATION.md
CHANGED
|
@@ -225,6 +225,7 @@ const context = await window.__MESURER__.context({ annotation: annotationId })
|
|
|
225
225
|
```
|
|
226
226
|
|
|
227
227
|
Saved annotation UI is source-linked presentation, not the durable state itself. Saved annotations survive a same-tab reload and conservatively rebind through their stored selector/fingerprint identity; ambiguous targets remain unresolved rather than attaching to a different element. Add Note, its composer, saved markers and panels, and the ownership edge move with their target through window and nested scrolling. A saved panel keeps its target-relative page point and may leave the viewport with its source. Several notes on one target keep separate nearby markers, and Add Note remains available while an existing note is open.
|
|
228
|
+
The composer is a compact auto-growing text field with an in-field Send button. Enter sends, Shift+Enter inserts a newline, and Escape discards. The first outside click on a non-empty draft prompts rather than discarding it; a second outside click closes it.
|
|
228
229
|
|
|
229
230
|
Do not infer that an annotation disappeared because its card or marker is currently offscreen. Read `annotations()` and annotation-scoped `context()` instead. When a note is highlighted, the temporary ownership emphasis uses one exact target boundary rather than a second fill, glow, or rounded frame.
|
|
230
231
|
|
package/README.md
CHANGED
|
@@ -105,6 +105,7 @@ Programmatic injection reuses an existing connected instance by default. Lifecyc
|
|
|
105
105
|
- Add page-scoped columns, rows, or pixel grids with the optional `layoutGuides()` plugin. Guide edits participate in plugin undo/redo, and Context includes the current page's saved guides with their visibility state.
|
|
106
106
|
- Inspect rendered typography in Select. Edit previews reversible direct copy and style changes.
|
|
107
107
|
- Use Edit to move selected UI and change direct text, typography, and text color without changing source.
|
|
108
|
+
- Open the built-in, default-on Responsive inspector with **B** to inspect up to six live same-origin viewports, use per-preview Guides, and annotate preview targets through Context. Disable it in **Settings > Plugins** or omit it with `excludeBuiltins: ["responsive"]`.
|
|
108
109
|
- Capture page regions through the optional Screenshot plugin. It selects native host capture, the Chromium extension adapter, or browser display capture internally, and flattens transparent native captures against the renderer backdrop before preview, copy, or save.
|
|
109
110
|
- Record adjustable selected regions through the optional Recording plugin at 60 fps by default or 120 fps when selected and supported. Browser, extension, and Electron APIs only acquire the stream; MediaBunny owns encoding, inspection, trim, 1×/2×/3× resize, and WebM/MP4 export.
|
|
110
111
|
- Read selection, measurements, guides, annotations, layout, styles, and saved human intent through Context and agent APIs.
|
|
@@ -154,6 +155,7 @@ Global shortcuts are enabled by default. Turn them off from **Settings > General
|
|
|
154
155
|
| `A` | Typography |
|
|
155
156
|
| `G` | Guides |
|
|
156
157
|
| `L` | Layout Guides when the plugin is enabled |
|
|
158
|
+
| `B` | Responsive inspector |
|
|
157
159
|
| `H` / `V` | Horizontal / vertical guide orientation |
|
|
158
160
|
| `Alt` / `Option` | Distance overlay |
|
|
159
161
|
| `Cmd/Ctrl + ,` | Settings |
|
|
@@ -206,6 +208,7 @@ See [Queue Context feedback to Codex](https://github.com/jhomra21/mesurer-solid/
|
|
|
206
208
|
- [Measurements and distance geometry](https://github.com/jhomra21/mesurer-solid/blob/main/docs/MEASUREMENTS.md)
|
|
207
209
|
- [Screenshots](https://github.com/jhomra21/mesurer-solid/blob/main/docs/SCREENSHOTS.md)
|
|
208
210
|
- [Recording](https://github.com/jhomra21/mesurer-solid/blob/main/docs/RECORDING.md)
|
|
211
|
+
- [Responsive inspector](https://github.com/jhomra21/mesurer-solid/blob/main/docs/RESPONSIVE_INSPECTOR.md)
|
|
209
212
|
- [Electron renderer example](https://github.com/jhomra21/mesurer-solid/blob/main/examples/electron-renderer/README.md)
|
|
210
213
|
- [Context workflow](https://github.com/jhomra21/mesurer-solid/blob/main/docs/CONTEXT_WORKFLOW.md)
|
|
211
214
|
- [Queue Context feedback to Codex](https://github.com/jhomra21/mesurer-solid/blob/main/docs/CODEX.md)
|
package/dist/context.d.ts
CHANGED
|
@@ -87,6 +87,16 @@ export type MesurerAnnotationTarget = {
|
|
|
87
87
|
selector: string;
|
|
88
88
|
fingerprint: MesurerElementFingerprint;
|
|
89
89
|
lastRect: MesurerContextRect;
|
|
90
|
+
viewport?: {
|
|
91
|
+
url: string;
|
|
92
|
+
width: number;
|
|
93
|
+
height: number;
|
|
94
|
+
previewId: string;
|
|
95
|
+
};
|
|
96
|
+
domPath?: Array<{
|
|
97
|
+
kind: "frame" | "shadow";
|
|
98
|
+
selector: string;
|
|
99
|
+
}>;
|
|
90
100
|
};
|
|
91
101
|
export type MesurerAnnotationBaseline = {
|
|
92
102
|
targets: Array<{
|
|
@@ -141,6 +151,8 @@ export type MesurerAnnotation = {
|
|
|
141
151
|
export type MesurerContextTarget = {
|
|
142
152
|
ref: string;
|
|
143
153
|
inspection: MesurerElementInspection;
|
|
154
|
+
viewport?: MesurerAnnotationTarget["viewport"];
|
|
155
|
+
domPath?: MesurerAnnotationTarget["domPath"];
|
|
144
156
|
};
|
|
145
157
|
export type MesurerContextGuide = {
|
|
146
158
|
id: string;
|
|
@@ -212,6 +224,7 @@ export type MesurerContextV1 = {
|
|
|
212
224
|
scrollY: number;
|
|
213
225
|
};
|
|
214
226
|
coordinateSpace: "viewport-css-px";
|
|
227
|
+
previewViewport?: MesurerAnnotationTarget["viewport"];
|
|
215
228
|
/** Requested/annotated viewport regions. Empty for whole-workspace context. */
|
|
216
229
|
regions: MesurerContextRect[];
|
|
217
230
|
visualState: {
|
|
@@ -255,6 +268,7 @@ export type MesurerCapturePlanV1 = {
|
|
|
255
268
|
contextId: string;
|
|
256
269
|
chrome: "hide";
|
|
257
270
|
evidence: "show";
|
|
271
|
+
previewViewport?: MesurerAnnotationTarget["viewport"];
|
|
258
272
|
captures: Array<{
|
|
259
273
|
id: "viewport";
|
|
260
274
|
kind: "viewport";
|
|
@@ -315,6 +329,7 @@ export type MesurerWorkspaceContextSource = {
|
|
|
315
329
|
}>;
|
|
316
330
|
} | null;
|
|
317
331
|
elementRect?(element: Element): MesurerContextRect;
|
|
332
|
+
targetScope?(element: Element): Pick<MesurerAnnotationTarget, "viewport" | "domPath">;
|
|
318
333
|
currentSelection(): {
|
|
319
334
|
elements: Element[];
|
|
320
335
|
region: MesurerContextRect | null;
|
package/dist/core.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type MesurerAgentHarness, type MesurerTextEditIntent } from "./agent";
|
|
2
2
|
import { type EditCapturePlan, type EditIntent, type EditPresentation, type EditReview } from "./arrange";
|
|
3
3
|
import type { MesurerAnnotation, MesurerCapturePlanV1, MesurerContextRequest, MesurerContextV1, MesurerReviewV1 } from "./context";
|
|
4
|
-
import type
|
|
4
|
+
import { type MesurerPlugin, type MesurerPluginDescription, type MesurerPluginHost } from "./core";
|
|
5
5
|
import { type MesurerHostLayerMode } from "./host-layer";
|
|
6
6
|
export type ColorPickerFormat = "hex" | "rgb" | "hsl" | "oklch";
|
|
7
7
|
export type MesurerTheme = "system" | "light" | "dark";
|
|
8
8
|
/** Public built-in names, aligned with the factories exported by `mesurer-solid/plugins`. */
|
|
9
|
-
export type MesurerBuiltin = "select" | "xray" | "colorPicker" | "rulers" | "typography" | "guides" | "distance" | "settings";
|
|
9
|
+
export type MesurerBuiltin = "select" | "xray" | "colorPicker" | "rulers" | "responsive" | "typography" | "guides" | "distance" | "settings";
|
|
10
10
|
/** @deprecated Internal compatibility ids used by the older `excludePlugins` option. */
|
|
11
|
-
export type MesurerBuiltinPluginId = "select" | "xray" | "color-picker" | "rulers" | "text-inspector" | "guides" | "distance" | "settings";
|
|
11
|
+
export type MesurerBuiltinPluginId = "select" | "xray" | "color-picker" | "rulers" | "responsive" | "text-inspector" | "guides" | "distance" | "settings";
|
|
12
12
|
export type LinePattern = "solid" | "dashed" | "dotted";
|
|
13
13
|
export type LineStyle = {
|
|
14
14
|
opacity: number;
|