@geometra/renderer-three 1.4.0 → 1.5.0

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.
@@ -6,8 +6,13 @@ export interface GeometraPageSection {
6
6
  id: string;
7
7
  /** WebSocket URL for the Geometra server view. */
8
8
  url: string;
9
- /** Fixed height in CSS pixels. The server should compute layout at this height. */
10
- height: number;
9
+ /**
10
+ * Height in CSS pixels, or `'auto'` to size from server-computed layout.
11
+ * When `'auto'`, the section resizes to match the root `layout.height` from
12
+ * the first server frame (requires `height: 'auto'` on the corresponding
13
+ * `createGeometraServer`).
14
+ */
15
+ height: number | 'auto';
11
16
  /** Enable binary framing for the WebSocket. */
12
17
  binaryFraming?: boolean;
13
18
  /** Renderer options (background color, etc.). */
@@ -1 +1 @@
1
- {"version":3,"file":"page-host.d.ts","sourceRoot":"","sources":["../src/page-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EACnC,MAAM,iBAAiB,CAAA;AAExB,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAA;IACd,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iDAAiD;IACjD,eAAe,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,CAAA;CAChF;AAED,MAAM,WAAW,4BAA6B,SAAQ,6BAA6B;IACjF,6DAA6D;IAC7D,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,2BAA4B,SAAQ,4BAA4B;IAC/E,0EAA0E;IAC1E,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,uDAAuD;IACvD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IACjD,6CAA6C;IAC7C,QAAQ,EAAE,cAAc,CAAA;CACzB;AAiCD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CAiE7B"}
1
+ {"version":3,"file":"page-host.d.ts","sourceRoot":"","sources":["../src/page-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EACnC,MAAM,iBAAiB,CAAA;AAExB,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX;;;;;OAKG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iDAAiD;IACjD,eAAe,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,CAAA;CAChF;AAED,MAAM,WAAW,4BAA6B,SAAQ,6BAA6B;IACjF,6DAA6D;IAC7D,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,2BAA4B,SAAQ,4BAA4B;IAC/E,0EAA0E;IAC1E,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,uDAAuD;IACvD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IACjD,6CAA6C;IAC7C,QAAQ,EAAE,cAAc,CAAA;CACzB;AAoDD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CAiE7B"}
package/dist/page-host.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { createBrowserCanvasClient, } from '@geometra/renderer-canvas';
2
2
  import { createThreeGeometraSplitHost, } from './split-host.js';
3
3
  function createSectionCanvas(doc, section, win) {
4
+ const isAutoHeight = section.height === 'auto';
4
5
  const wrapper = doc.createElement('div');
5
6
  wrapper.style.width = '100%';
6
- wrapper.style.height = `${section.height}px`;
7
+ wrapper.style.height = isAutoHeight ? '0' : `${section.height}px`;
7
8
  wrapper.style.minWidth = '0';
8
9
  wrapper.dataset.geometraSection = section.id;
9
10
  const canvas = doc.createElement('canvas');
@@ -21,6 +22,23 @@ function createSectionCanvas(doc, section, win) {
21
22
  ...section.rendererOptions,
22
23
  },
23
24
  });
25
+ // Auto-height: poll the client's layout for the computed root height
26
+ if (isAutoHeight) {
27
+ let lastHeight = 0;
28
+ const checkHeight = () => {
29
+ const layout = handle.client.layout;
30
+ if (layout && layout.height > 0 && layout.height !== lastHeight) {
31
+ lastHeight = layout.height;
32
+ wrapper.style.height = `${layout.height}px`;
33
+ }
34
+ };
35
+ // Check on each animation frame until we get a height, then periodically
36
+ const poll = () => {
37
+ checkHeight();
38
+ win.requestAnimationFrame(poll);
39
+ };
40
+ win.requestAnimationFrame(poll);
41
+ }
24
42
  return { wrapper, handle };
25
43
  }
26
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"page-host.js","sourceRoot":"","sources":["../src/page-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-host.js","sourceRoot":"","sources":["../src/page-host.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geometra/renderer-three",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Three.js render target helpers for Geometra — stack WebGL with the geometry-streamed canvas client, declarative scene3d element rendering",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -36,9 +36,9 @@
36
36
  "check": "tsc --noEmit"
37
37
  },
38
38
  "dependencies": {
39
- "@geometra/client": "^1.4.0",
40
- "@geometra/core": "^1.4.0",
41
- "@geometra/renderer-canvas": "^1.4.0"
39
+ "@geometra/client": "^1.5.0",
40
+ "@geometra/core": "^1.5.0",
41
+ "@geometra/renderer-canvas": "^1.5.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "three": ">=0.160.0 <0.180.0"