gds-lens 1.0.1 → 1.0.3
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 +48 -1
- package/README.md +7 -0
- package/dist/esm/gds-lens.js +40 -13
- package/dist/inline-wasm/gds-lens-engine.js +0 -0
- package/dist/inline-wasm/gds-lens.js +39 -12
- package/dist/web/gds-lens-engine.js +1 -1
- package/dist/web/gds-lens-engine.wasm +0 -0
- package/dist/web/gds-lens.js +39 -12
- package/package.json +1 -1
- package/src/viewer.css +11 -0
- package/src/viewer.js +54 -12
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,52 @@ follows [semantic versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
From 1.0.0 on, a breaking change to the element's API waits for a major
|
|
8
8
|
version. Before that, `0.x` releases changed it freely.
|
|
9
9
|
|
|
10
|
+
## [1.0.3] - 2026-08-31
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Thin shapes vanished when "merge overlapping shapes" was on. The merge pass
|
|
15
|
+
builds a screen-space coverage mask out of fill triangles, but with infill
|
|
16
|
+
off a layer is normally drawn as outlines -- and a GL line covers at least
|
|
17
|
+
one fragment, while the triangles of a 0.5 um waveguide at fit zoom are about
|
|
18
|
+
0.04 px across and cover no sample at all. Every waveguide in a full-die view
|
|
19
|
+
simply disappeared. The mask now rasterises the outline edges as well as the
|
|
20
|
+
fill, so what merge mode shows is what the layer draws. Raising the mask's
|
|
21
|
+
supersampling was not the fix: even 8x still misses 0.04 px, at 16x the
|
|
22
|
+
memory.
|
|
23
|
+
- `[` and `]` jumped into a different marker category. The step walked every
|
|
24
|
+
category that was ticked visible, so with a marker selected in a hidden
|
|
25
|
+
category the first press left it for an unrelated result somewhere else in
|
|
26
|
+
the file. Stepping now stays inside the selected marker's own category
|
|
27
|
+
whenever that category is hidden, including when the step runs off the end of
|
|
28
|
+
the list.
|
|
29
|
+
|
|
30
|
+
## [1.0.2] - 2026-08-25
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- Marker-file warnings are spelled out rather than counted. The `⚠ N warnings`
|
|
35
|
+
row is a folder now, with one wrapping row per warning inside it. The
|
|
36
|
+
sentences used to live only in a hover title and a `?gdsDebug=1` console
|
|
37
|
+
line, so the one thing the row existed to report -- a marker may be in the
|
|
38
|
+
wrong place, a value was not drawn -- was the one thing it did not say.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Right-click -> "Copy coordinate" did nothing. The menu is dismissed by a
|
|
43
|
+
`pointerdown` listener on `window`, which asked whether the menu contained
|
|
44
|
+
`event.target` -- but the viewer moved into a shadow root in 1.0.0, and an
|
|
45
|
+
event from inside one is retargeted to the `<gds-lens>` host by the time it
|
|
46
|
+
reaches `window`. The menu therefore hid itself (`display: none`) on the very
|
|
47
|
+
press that was landing on its own item, so the button never became a click.
|
|
48
|
+
The menu opened and showed the right coordinate throughout, which is what
|
|
49
|
+
made it look alive.
|
|
50
|
+
- The keyboard guard that keeps `m`, `h` and `/` from reaching the viewer while
|
|
51
|
+
someone is typing in one of lil-gui's text boxes, broken by the same
|
|
52
|
+
retargeting: it saw the host element rather than the focused input for every
|
|
53
|
+
keystroke, so typing in a filter box could switch modes, toggle the hierarchy
|
|
54
|
+
tree, or move focus.
|
|
55
|
+
|
|
10
56
|
## [1.0.1] - 2026-08-25
|
|
11
57
|
|
|
12
58
|
### Fixed
|
|
@@ -302,7 +348,8 @@ web page rather than for a webview.
|
|
|
302
348
|
worker-loading route and shipped unsubstituted. The `createWorker` host hook
|
|
303
349
|
replaces it.
|
|
304
350
|
|
|
305
|
-
[Unreleased]: https://github.com/EthanLowenthal/GDS-Lens/compare/v1.0.
|
|
351
|
+
[Unreleased]: https://github.com/EthanLowenthal/GDS-Lens/compare/v1.0.2...HEAD
|
|
352
|
+
[1.0.2]: https://github.com/EthanLowenthal/GDS-Lens/compare/v1.0.1...v1.0.2
|
|
306
353
|
[1.0.1]: https://github.com/EthanLowenthal/GDS-Lens/compare/v1.0.0...v1.0.1
|
|
307
354
|
[1.0.0]: https://github.com/EthanLowenthal/GDS-Lens/compare/v0.1.1...v1.0.0
|
|
308
355
|
[0.1.1]: https://github.com/EthanLowenthal/GDS-Lens/compare/v0.1.0...v0.1.1
|
package/README.md
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
# GDS Lens
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/gds-lens)
|
|
4
|
+
[](https://www.npmjs.com/package/gds-lens)
|
|
4
5
|
[](LICENCE.md)
|
|
5
6
|
|
|
6
7
|
GDSII and OASIS chip layouts, parsed and rendered in the browser. A drop-in
|
|
7
8
|
custom element compiled to pure JS+WASM with a WebGL2 renderer.
|
|
8
9
|
|
|
10
|
+
**[Open a layout in your browser](https://lowenth.al/GDS-Lens/)** to see it
|
|
11
|
+
work: drop a `.gds` or `.oas` onto the page, or look at the demo layout it
|
|
12
|
+
starts with. Nothing is uploaded, and there is nothing to install. The page is
|
|
13
|
+
built from the published package, so it is also the quickest way to check what
|
|
14
|
+
a given release does.
|
|
15
|
+
|
|
9
16
|

|
|
10
17
|
|
|
11
18
|
> **Status**: 1.0. The element's API is stable, and breaking changes wait
|