Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,18 @@
inline Inkscape SVG per row.
- [x] AnnotationList: `content-visibility: auto` on rows; id->index map in the grouped view.
- [x] Lint, build, jest 515/515.

## Fix GitHub Pages demo (blank page)

- [x] `live_demo.html`: load `./cs-demo-0.png` (relative) so it resolves under `/ulabel/`.
- [x] `deploy-demo.yml`: copy `demo/cs-demo-0.png` into `_site`.
- [x] Verified with Playwright against a simulated `/ulabel/` Pages layout.

## Fix flaky Firefox isolate e2e test

- [x] AnnotationList: `contain-intrinsic-size` 37px -> 24px. It sizes the content box, so
unrendered rows were 54px vs 41px rendered; the list shifted as rows rendered and the
test's click hit the row instead of the isolate button.
- [x] Test: move the mouse off the list before counting pixels (Firefox hovers the
re-rendered row, drawing a thicker outline).
- [x] Verified: Firefox 50/50 with no settle wait; list-related e2e 156/156; lint; jest 515/515.
1 change: 1 addition & 0 deletions .github/workflows/deploy-demo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
mkdir -p _site
cp demo/live_demo.html _site/index.html
cp dist/ulabel.min.js _site/ulabel.min.js
cp demo/cs-demo-0.png _site/cs-demo-0.png

- name: Configure Pages
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5
Expand Down
8 changes: 7 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
{
"js/ts.tsdk.path": "node_modules\\typescript\\lib"
"js/ts.tsdk.path": "node_modules\\typescript\\lib",
"chat.tools.terminal.autoApprove": {
"/^gh api repos/SenteraLLC/ulabel/pages --jq \\.html_url; git --no-pager log --oneline -5; Get-ChildItem \\.github\\\\workflows \\| Select-Object Name$/": {
"approve": true,
"matchCommandLine": true
}
}
}
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

All notable changes to this project will be documented here.

## [Unreleased]

## [0.30.1] - Oct 21st, 2026
#### Fixed
- `AnnotationList` rows that had not been drawn yet reserved 54px instead of 41px, so the list jumped as rows scrolled into view (most visible in Firefox).

## [0.30.0] - Oct 20th, 2026
#### Changed
- `init()` now returns the `ulabel_init`; typed `Promise<void>`
Expand Down
2 changes: 1 addition & 1 deletion demo/live_demo.html
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@
// Initial ULabel configuration
let ulabel = new ULabel({
"container_id": "container",
"image_data": "/cs-demo-0.png",
"image_data": "./cs-demo-0.png",
"username": "DemoUser",
"submit_buttons": on_submit,
"subtasks": subtasks
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ulabel",
"description": "An image annotation tool.",
"version": "0.30.0",
"version": "0.30.1",
"main": "dist/ulabel.min.js",
"module": "dist/ulabel.min.js",
"types": "dist/index.d.ts",
Expand Down
3 changes: 2 additions & 1 deletion src/toolbox_items/annotation_list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,8 @@ export class AnnotationListToolboxItem extends ToolboxItem {
cursor: pointer;
transition: background-color 150ms;
content-visibility: auto;
contain-intrinsic-size: auto 37px;
/* Content-box height: a rendered row is 24px of content + 1rem padding + 1px border */
contain-intrinsic-size: auto 24px;
}

#toolbox .annotation-list-item:last-child {
Expand Down
2 changes: 1 addition & 1 deletion src/version.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export const ULABEL_VERSION = "0.30.0";
export const ULABEL_VERSION = "0.30.1";
2 changes: 2 additions & 0 deletions tests/e2e/isolate.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ test.describe("isolate annotation", () => {

const entry = page.locator(".annotation-list-item[data-annotation-id=\"grid-7\"]");
await entry.locator(".annotation-list-item-isolate").click();
// The re-rendered row lands under the cursor; Firefox hovers it, drawing a thicker outline
await page.mouse.move(5, 5);
await page.waitForTimeout(100);

expect(await isolated_id(page)).toBe("grid-7");
Expand Down
Loading