webmarker-js 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -11,7 +11,7 @@ Mark web pages for use with vision-language models.
11
11
 
12
12
  ## Overview
13
13
 
14
- **WebMarker** adds visual markings with labels to elements on a web page. This can be used for [Set-of-Mark (SoM)](https://github.com/microsoft/SoM) prompting, which improves visual grounding abilities of vision-language models such as GPT-4o, Claude 3.5, and Google Gemini 1.5.
14
+ **WebMarker** adds visual markings with labels to elements on a web page. This can be used for [Set-of-Mark](https://github.com/microsoft/SoM) prompting, which improves visual grounding abilities of vision-language models such as GPT-4o, Claude 3.5, and Google Gemini 1.5.
15
15
 
16
16
  ![Screenshot of marked Google homepage](https://github.com/user-attachments/assets/722e1034-06d4-4ccd-a7d6-f03749435681)
17
17
 
@@ -89,6 +89,13 @@ A custom CSS selector to specify which elements to mark.
89
89
  - Type: `string`
90
90
  - Default: `"button, input, a, select, textarea"`
91
91
 
92
+ ### getLabel
93
+
94
+ Provide a function for generating labels. By default, labels are generated as integers starting from 0.
95
+
96
+ - Type: `(element: Element, index: number) => string`
97
+ - Default: `(_, index) => index.toString()`
98
+
92
99
  ### markAttribute
93
100
 
94
101
  A custom attribute to add to the marked elements. This attribute contains the label of the mark.
@@ -96,13 +103,6 @@ A custom attribute to add to the marked elements. This attribute contains the la
96
103
  - Type: `string`
97
104
  - Default: `"data-mark-label"`
98
105
 
99
- ### markStyle
100
-
101
- A CSS style to apply to the label element. You can also specify a function that returns a CSS style object.
102
-
103
- - Type: `Readonly<Partial<CSSStyleDeclaration>> or (element: Element) => Readonly<Partial<CSSStyleDeclaration>>`
104
- - Default: `{backgroundColor: "red", color: "white", padding: "2px 4px", fontSize: "12px", fontWeight: "bold"}`
105
-
106
106
  ### markPlacement
107
107
 
108
108
  The placement of the mark relative to the element.
@@ -110,11 +110,18 @@ The placement of the mark relative to the element.
110
110
  - Type: `'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'`
111
111
  - Default: `'top-start'`
112
112
 
113
+ ### markStyle
114
+
115
+ A CSS style to apply to the label element. You can also specify a function that returns a CSS style object.
116
+
117
+ - Type: `Partial<CSSStyleDeclaration> | (element: Element) => Partial<CSSStyleDeclaration>`
118
+ - Default: `{backgroundColor: "red", color: "white", padding: "2px 4px", fontSize: "12px", fontWeight: "bold"}`
119
+
113
120
  ### boundingBoxStyle
114
121
 
115
122
  A CSS style to apply to the bounding box element. You can also specify a function that returns a CSS style object. Bounding boxes are only shown if showBoundingBoxes is true.
116
123
 
117
- - Type: `Readonly<Partial<CSSStyleDeclaration>> or (element: Element) => Readonly<Partial<CSSStyleDeclaration>>`
124
+ - Type: `Partial<CSSStyleDeclaration> | (element: Element) => Partial<CSSStyleDeclaration>`
118
125
  - Default: `{outline: "2px dashed red", backgroundColor: "transparent"}`
119
126
 
120
127
  ### showBoundingBoxes
@@ -124,13 +131,6 @@ Whether or not to show bounding boxes around the elements.
124
131
  - Type: `boolean`
125
132
  - Default: `true`
126
133
 
127
- ### getLabel
128
-
129
- Provide a function for generating labels. By default, labels are generated as integers starting from 0.
130
-
131
- - Type: `(element: Element, index: number) => string`
132
- - Default: `(_, index) => index.toString()`
133
-
134
134
  ### containerElement
135
135
 
136
136
  Provide a container element to query the elements to be marked. By default, the container element is document.body.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  type Placement = "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end";
2
- type StyleFunction = (element: Element) => CSSStyleDeclaration;
3
- type StyleObject = Readonly<Partial<CSSStyleDeclaration>>;
2
+ type StyleFunction = (element: Element) => Partial<CSSStyleDeclaration>;
3
+ type StyleObject = Partial<CSSStyleDeclaration>;
4
4
  interface MarkOptions {
5
5
  /**
6
6
  * A CSS selector to query the elements to be marked.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "webmarker-js",
3
- "version": "0.2.0",
4
- "description": "A library for marking web pages for Set-of-Mark (SoM) prompting with vision-language models.",
3
+ "version": "0.3.0",
4
+ "description": "A library for marking web pages for Set-of-Mark prompting with vision-language models.",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/main.js",
7
7
  "module": "dist/module.js",
package/src/index.ts CHANGED
@@ -14,8 +14,8 @@ type Placement =
14
14
  | "left-start"
15
15
  | "left-end";
16
16
 
17
- type StyleFunction = (element: Element) => CSSStyleDeclaration;
18
- type StyleObject = Readonly<Partial<CSSStyleDeclaration>>;
17
+ type StyleFunction = (element: Element) => Partial<CSSStyleDeclaration>;
18
+ type StyleObject = Partial<CSSStyleDeclaration>;
19
19
 
20
20
  interface MarkOptions {
21
21
  /**