@snaptrude/plugin-core 0.9.0 → 0.9.2

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.
Files changed (45) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/api-manifest.full.json +411 -2
  3. package/api-manifest.json +411 -2
  4. package/dist/api/core/geom/create/index.d.ts +406 -11
  5. package/dist/api/core/geom/create/index.d.ts.map +1 -1
  6. package/dist/api/core/geom/query/brep.d.ts +44 -0
  7. package/dist/api/core/geom/query/brep.d.ts.map +1 -1
  8. package/dist/api/core/io/terrain/index.d.ts +135 -0
  9. package/dist/api/core/io/terrain/index.d.ts.map +1 -1
  10. package/dist/api/presentation/annotate.d.ts +23 -4
  11. package/dist/api/presentation/annotate.d.ts.map +1 -1
  12. package/dist/api/presentation/diagrams.d.ts +64 -2
  13. package/dist/api/presentation/diagrams.d.ts.map +1 -1
  14. package/dist/api/presentation/index.d.ts +11 -1
  15. package/dist/api/presentation/index.d.ts.map +1 -1
  16. package/dist/api/presentation/placedViews.d.ts +772 -3
  17. package/dist/api/presentation/placedViews.d.ts.map +1 -1
  18. package/dist/api/presentation/shapes.d.ts +2 -2
  19. package/dist/api/presentation/sheets.d.ts +42 -0
  20. package/dist/api/presentation/sheets.d.ts.map +1 -1
  21. package/dist/api/presentation/slideshow.d.ts +125 -0
  22. package/dist/api/presentation/slideshow.d.ts.map +1 -0
  23. package/dist/api/presentation/tables.d.ts +81 -0
  24. package/dist/api/presentation/tables.d.ts.map +1 -0
  25. package/dist/api/program/site.d.ts +166 -2
  26. package/dist/api/program/site.d.ts.map +1 -1
  27. package/dist/api/workspace/index.d.ts +46 -1
  28. package/dist/api/workspace/index.d.ts.map +1 -1
  29. package/dist/index.cjs +890 -554
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.js +850 -554
  32. package/dist/index.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/api/core/geom/create/index.ts +445 -10
  35. package/src/api/core/geom/query/brep.ts +45 -0
  36. package/src/api/core/io/terrain/index.ts +146 -0
  37. package/src/api/presentation/annotate.ts +27 -2
  38. package/src/api/presentation/diagrams.ts +67 -2
  39. package/src/api/presentation/index.ts +11 -1
  40. package/src/api/presentation/placedViews.ts +760 -3
  41. package/src/api/presentation/sheets.ts +54 -0
  42. package/src/api/presentation/slideshow.ts +134 -0
  43. package/src/api/presentation/tables.ts +84 -0
  44. package/src/api/program/site.ts +110 -2
  45. package/src/api/workspace/index.ts +48 -1
@@ -158,6 +158,71 @@ export declare abstract class PluginCoreIoTerrainApi {
158
158
  * @examplePrompt Remove the satellite drape
159
159
  */
160
160
  abstract disableSatellite(): PluginApiReturn<void>;
161
+ /**
162
+ * Replace the terrain surface with a caller-supplied triangle mesh. Undoable
163
+ * (one step), and the replacement persists with the project. The returned
164
+ * promise resolves only after the surface is fully applied and recorded —
165
+ * it is safe to toggle terrain resolution or read the surface back the
166
+ * moment it resolves.
167
+ *
168
+ * `positions` is a flat `[x, y, z, …]` array in **world space** — the same
169
+ * frame `design.query.geometry.getTriangulatedMeshes` reads — so a
170
+ * read-modify-write round trip needs no conversion. `indices` is a flat
171
+ * triangle list into `positions` (three indices per triangle). A
172
+ * predominantly down-facing surface is flipped automatically (reported in
173
+ * `warnings`), and zero-area sliver triangles are tolerated and counted.
174
+ *
175
+ * **What survives the replacement:** the datum, geolocation, opacity, lock
176
+ * state, and the elevation/satellite toggles. The map/satellite texture is
177
+ * re-projected onto the new surface from above (best effort — alignment is
178
+ * approximate, reported in `warnings`). **What resets:** cut/fill history
179
+ * and the earthwork report — the replaced surface starts with a clean
180
+ * grading slate.
181
+ *
182
+ * Limits: at most 500,000 triangles and 500,000 vertices; every coordinate
183
+ * must be finite and within the scene bound.
184
+ *
185
+ * @param positions - Flat `[x, y, z, …]` world-space vertex positions.
186
+ * @param indices - Flat triangle list into `positions`.
187
+ * @param units - `"world"` (default): coordinates are raw internal units;
188
+ * `"meters"`: coordinates are metres and are converted on the way in.
189
+ * @param options - Optional {@linkcode PluginTerrainReplaceMeshOptions}:
190
+ * optimistic-concurrency expectations (`expectedTerrain`,
191
+ * `expectedModelRevision`), `preserve` opt-outs, idempotent replay via
192
+ * `clientMutationId`, and the `coordinateSpace`/`baseline` declarations.
193
+ * @throws if writes are disabled, there is no terrain (import one first),
194
+ * the terrain is **locked**, the mesh fails validation (non-finite or
195
+ * out-of-bound coordinates, bad indices, degenerate-only geometry, over
196
+ * the size caps), `expectedTerrain` does not match the live terrain, or
197
+ * `expectedModelRevision` is stale.
198
+ *
199
+ * @examplePrompt Replace the terrain with this surveyed mesh
200
+ * @examplePrompt Flatten a building pad into the site surface
201
+ * @examplePrompt Load a custom DEM surface onto the terrain
202
+ * @examplePrompt Regrade the terrain from these points
203
+ *
204
+ * # Example
205
+ * ```ts
206
+ * // Projects with no terrain yet: import first, then replace.
207
+ * if (!(await snaptrude.core.io.terrain.exists())) {
208
+ * await snaptrude.core.io.import.terrain(40.7128, -74.006, 300, 300)
209
+ * }
210
+ * const result = await snaptrude.core.io.terrain.replaceMesh(
211
+ * positions, // [x0, y0, z0, x1, y1, z1, …] — world space
212
+ * indices, // [a0, b0, c0, a1, b1, c1, …]
213
+ * "meters",
214
+ * {
215
+ * coordinateSpace: "world",
216
+ * expectedTerrain: await snaptrude.core.io.terrain.get(),
217
+ * baseline: "make-replacement-original",
218
+ * preserve: { datum: true, geolocation: true, satellite: true, material: true },
219
+ * clientMutationId: "survey-2026-08-05-r1",
220
+ * },
221
+ * )
222
+ * // result.modelRevision — pass back as expectedModelRevision on the next call
223
+ * ```
224
+ */
225
+ abstract replaceMesh(positions: number[], indices: number[], units?: "world" | "meters", options?: PluginTerrainReplaceMeshOptions): PluginApiReturn<PluginTerrainReplaceMeshResult>;
161
226
  /** Read the terrain opacity, `0`..`1`, or `null` if no terrain. */
162
227
  abstract getOpacity(): PluginApiReturn<number | null>;
163
228
  /**
@@ -193,6 +258,76 @@ export declare const TerrainReport: z.ZodObject<{
193
258
  netVolume: z.ZodNumber;
194
259
  }, z.core.$strip>;
195
260
  export type TerrainReport = z.infer<typeof TerrainReport>;
261
+ /**
262
+ * Result of {@link PluginCoreIoTerrainApi.replaceMesh}.
263
+ *
264
+ * | Property | Type | Description |
265
+ * |---|---|---|
266
+ * | `terrain` | `TerrainHandle` | The terrain (unchanged singleton handle) |
267
+ * | `modelRevision` | `number` | Session-scoped terrain-mesh revision after this replace — pass back as `expectedModelRevision` for compare-and-swap semantics |
268
+ * | `vertexCount` | `number` | Vertices in the applied mesh |
269
+ * | `triangleCount` | `number` | Triangles in the applied mesh |
270
+ * | `warnings` | `string[]` | Non-fatal notes: winding flipped, sliver triangles, approximate texture re-projection |
271
+ */
272
+ export type PluginTerrainReplaceMeshResult = {
273
+ terrain: TerrainHandle;
274
+ modelRevision: number;
275
+ vertexCount: number;
276
+ triangleCount: number;
277
+ warnings: string[];
278
+ };
279
+ /**
280
+ * Options for {@link PluginCoreIoTerrainApi.replaceMesh}.
281
+ *
282
+ * | Property | Type | Description |
283
+ * |---|---|---|
284
+ * | `coordinateSpace` | `"world"`? | Declares the input frame. `world` is the only supported space (the same frame `getTriangulatedMeshes` reads) |
285
+ * | `expectedTerrain` | `TerrainHandle`? | Optimistic check: throws `HANDLE_INVALID` if the live terrain is not this handle (session-scoped — handles do not survive reloads) |
286
+ * | `expectedModelRevision` | `number`? | Optimistic check against the session terrain-mesh revision (starts at `0`, increments per successful `replaceMesh`; the result returns the new value). Stale → `PRECONDITION_FAILED` with the current revision in `details` |
287
+ * | `baseline` | `"make-replacement-original"`? | Declares replacement semantics. This is the only (and default) behavior: the replacement becomes the persisted surface; the app's terrain Reset restores the original map heightmap as the escape hatch |
288
+ * | `preserve` | object? | Opt-outs, all defaulting `true`. `datum: false` resets the terrain transform (authored coordinates become the local frame). `satellite: false` switches the drape off after the replace. `material: false` skips texture re-projection — the whole surface takes the ground material. `geolocation: false` is rejected (`VALIDATION`): geolocation is always preserved in this version |
289
+ * | `clientMutationId` | `string`? | Session-scoped idempotency: a repeated call with the same id returns the original result without re-executing |
290
+ */
291
+ export declare const PluginTerrainReplaceMeshOptions: z.ZodObject<{
292
+ coordinateSpace: z.ZodOptional<z.ZodLiteral<"world">>;
293
+ expectedTerrain: z.ZodOptional<z.ZodString>;
294
+ expectedModelRevision: z.ZodOptional<z.ZodNumber>;
295
+ baseline: z.ZodOptional<z.ZodLiteral<"make-replacement-original">>;
296
+ preserve: z.ZodOptional<z.ZodObject<{
297
+ datum: z.ZodOptional<z.ZodBoolean>;
298
+ geolocation: z.ZodOptional<z.ZodBoolean>;
299
+ satellite: z.ZodOptional<z.ZodBoolean>;
300
+ material: z.ZodOptional<z.ZodBoolean>;
301
+ }, z.core.$strict>>;
302
+ clientMutationId: z.ZodOptional<z.ZodString>;
303
+ }, z.core.$strict>;
304
+ export type PluginTerrainReplaceMeshOptions = z.infer<typeof PluginTerrainReplaceMeshOptions>;
305
+ /**
306
+ * Arguments for {@link PluginCoreIoTerrainApi.replaceMesh}. The caps are the
307
+ * plugin surface's explicit payload ceiling: 500k vertices / 500k triangles.
308
+ */
309
+ export declare const PluginTerrainReplaceMeshArgs: z.ZodObject<{
310
+ positions: z.ZodArray<z.ZodNumber>;
311
+ indices: z.ZodArray<z.ZodNumber>;
312
+ units: z.ZodOptional<z.ZodEnum<{
313
+ meters: "meters";
314
+ world: "world";
315
+ }>>;
316
+ options: z.ZodOptional<z.ZodObject<{
317
+ coordinateSpace: z.ZodOptional<z.ZodLiteral<"world">>;
318
+ expectedTerrain: z.ZodOptional<z.ZodString>;
319
+ expectedModelRevision: z.ZodOptional<z.ZodNumber>;
320
+ baseline: z.ZodOptional<z.ZodLiteral<"make-replacement-original">>;
321
+ preserve: z.ZodOptional<z.ZodObject<{
322
+ datum: z.ZodOptional<z.ZodBoolean>;
323
+ geolocation: z.ZodOptional<z.ZodBoolean>;
324
+ satellite: z.ZodOptional<z.ZodBoolean>;
325
+ material: z.ZodOptional<z.ZodBoolean>;
326
+ }, z.core.$strict>>;
327
+ clientMutationId: z.ZodOptional<z.ZodString>;
328
+ }, z.core.$strict>>;
329
+ }, z.core.$strip>;
330
+ export type PluginTerrainReplaceMeshArgs = z.infer<typeof PluginTerrainReplaceMeshArgs>;
196
331
  /** Arguments for {@link PluginCoreIoTerrainApi.setDatum}. */
197
332
  export declare const PluginTerrainSetDatumArgs: z.ZodObject<{
198
333
  offset: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/io/terrain/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;;OAcG;aACa,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC;IAElD;;;;;;;;;OASG;aACa,GAAG,IAAI,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC;IAE5D;;;;;;;;;;;OAWG;aACa,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAE1D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;IAE/D;;;;;;;;;;OAUG;aACa,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC;IAE/C;;;;;;;;;;;;;;OAcG;aACa,SAAS,IAAI,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC;IAElE,0EAA0E;aAC1D,kBAAkB,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;IACrE;;;;;;;;OAQG;aACa,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC;IACxD;;;;;;;;OAQG;aACa,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC;IAEzD,gFAAgF;aAChE,kBAAkB,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;IACrE;;;;;;;;OAQG;aACa,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC;IACxD;;;;;;;;OAQG;aACa,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC;IAEzD,mEAAmE;aACnD,UAAU,IAAI,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5D;;;;;;;;;;;;;;OAcG;aACa,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;CACnE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa;;;;iBAIxB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEzD,6DAA6D;AAC7D,eAAO,MAAM,yBAAyB;;iBAA4C,CAAA;AAClF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B;;iBAAkD,CAAA;AAC1F,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/io/terrain/index.ts"],"names":[],"mappings":"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"}
@@ -24,12 +24,22 @@ export declare abstract class PluginPresentationAnnotateApi {
24
24
  * Creates a text shape on the given sheet and returns the id of the created
25
25
  * canvas shape. Requires Present mode to be open.
26
26
  *
27
+ * Typography is optional: `fontFamily` takes a system family or any Google
28
+ * Font (loaded automatically, the same loader as the Present text panel);
29
+ * `fontWeight` is a numeric weight string like `"400"` or `"700"`,
30
+ * optionally with the `-italic` suffix (e.g. `"700-italic"`) — the Present
31
+ * text panel's value domain; a weight the chosen font does not provide
32
+ * falls back to regular. `fontSizePx` sets an exact pixel size, overriding
33
+ * the `size` preset when both are given (`size` alone keeps working).
34
+ *
27
35
  * @param sheetId - The sheet to annotate.
28
36
  * @param text - The label text.
29
37
  * @param options - Optional `position` (`{ x, y }`, relative to the sheet's
30
38
  * top-left, in canvas units — defaults to the sheet's top-left corner),
31
- * `size` (`"s" | "m" | "l" | "xl"`, default `"m"`), and `color` (a named
32
- * palette color, default `"black"`).
39
+ * `size` (`"s" | "m" | "l" | "xl"`, default `"m"`), `color` (a named
40
+ * palette color, default `"black"`), and typography: `fontFamily`,
41
+ * `fontWeight` (numeric string, `-italic` suffix allowed), `fontSizePx`
42
+ * (positive px size overriding the `size` preset).
33
43
  * @returns A {@linkcode PluginPresentationAnnotateTextResult} with the created
34
44
  * `shapeId`.
35
45
  * @throws If Present mode is not open or the sheet id is invalid.
@@ -55,6 +65,9 @@ export declare abstract class PluginPresentationAnnotateApi {
55
65
  };
56
66
  size?: PluginAnnotateTextSize;
57
67
  color?: PluginAnnotateTextColor;
68
+ fontFamily?: string;
69
+ fontWeight?: string;
70
+ fontSizePx?: number;
58
71
  }): PluginApiReturn<PluginPresentationAnnotateTextResult>;
59
72
  /**
60
73
  * Draw an arrow on a sheet.
@@ -214,6 +227,9 @@ export type PluginAnnotateTextColor = z.infer<typeof PluginAnnotateTextColor>;
214
227
  * | `position` | `{ x: number; y: number } \| undefined` | Where to place it (relative to the sheet) |
215
228
  * | `size` | {@linkcode PluginAnnotateTextSize}` \| undefined` | Text size preset |
216
229
  * | `color` | {@linkcode PluginAnnotateTextColor}` \| undefined` | Text color |
230
+ * | `fontFamily` | `string \| undefined` | System family or any Google Font (loaded automatically) |
231
+ * | `fontWeight` | `string \| undefined` | Numeric weight like `"400"`/`"700"`, `-italic` suffix allowed |
232
+ * | `fontSizePx` | `number \| undefined` | Exact px size (overrides the `size` preset) |
217
233
  */
218
234
  export declare const PluginPresentationAnnotateTextArgs: z.ZodObject<{
219
235
  sheetId: z.ZodString;
@@ -243,6 +259,9 @@ export declare const PluginPresentationAnnotateTextArgs: z.ZodObject<{
243
259
  red: "red";
244
260
  white: "white";
245
261
  }>>;
262
+ fontFamily: z.ZodOptional<z.ZodString>;
263
+ fontWeight: z.ZodOptional<z.ZodString>;
264
+ fontSizePx: z.ZodOptional<z.ZodNumber>;
246
265
  }, z.core.$strip>;
247
266
  export type PluginPresentationAnnotateTextArgs = z.infer<typeof PluginPresentationAnnotateTextArgs>;
248
267
  /**
@@ -282,9 +301,9 @@ export type PluginAnnotateGeoKind = z.infer<typeof PluginAnnotateGeoKind>;
282
301
  /** Fill style for geo shapes (the same fills as the Present-mode style panel). */
283
302
  export declare const PluginAnnotateFill: z.ZodEnum<{
284
303
  pattern: "pattern";
304
+ solid: "solid";
285
305
  none: "none";
286
306
  semi: "semi";
287
- solid: "solid";
288
307
  }>;
289
308
  export type PluginAnnotateFill = z.infer<typeof PluginAnnotateFill>;
290
309
  /**
@@ -426,9 +445,9 @@ export declare const PluginPresentationAnnotateShapeArgs: z.ZodObject<{
426
445
  }>>;
427
446
  fill: z.ZodOptional<z.ZodEnum<{
428
447
  pattern: "pattern";
448
+ solid: "solid";
429
449
  none: "none";
430
450
  semi: "semi";
431
- solid: "solid";
432
451
  }>>;
433
452
  }, z.core.$strip>;
434
453
  export type PluginPresentationAnnotateShapeArgs = z.infer<typeof PluginPresentationAnnotateShapeArgs>;
@@ -1 +1 @@
1
- {"version":3,"file":"annotate.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/annotate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"annotate.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/annotate.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,10 @@ import { PluginApiReturn } from "../../types";
7
7
  * {@linkcode PluginPresentationDiagramsApi.generateProgram} runs the Present-mode
8
8
  * **Program** action: it reads the project's spaces and departments and creates
9
9
  * new layout sheets holding the generated diagram graphics.
10
+ * {@linkcode PluginPresentationDiagramsApi.generateSite} runs the site-diagram
11
+ * flow (location / streetview / climate sheets from the map terrain).
10
12
  * {@linkcode PluginPresentationDiagramsApi.place} drops ready diagram images (by
11
- * URL) onto an existing sheet and returns the created canvas shape ids. Both
13
+ * URL) onto an existing sheet and returns the created canvas shape ids. All
12
14
  * require Present mode to be open. Adjacency data itself is read and computed via
13
15
  * `program.adjacency` (see {@linkcode PluginProgramAdjacencyApi}).
14
16
  *
@@ -47,6 +49,43 @@ export declare abstract class PluginPresentationDiagramsApi {
47
49
  * ```
48
50
  */
49
51
  abstract generateProgram(): PluginApiReturn<PluginPresentationDiagramsGenerateResult>;
52
+ /**
53
+ * Generate the site diagrams (location, streetview, climate) for the
54
+ * current model, creating new layout sheets.
55
+ *
56
+ * Runs the same auto-generation as the Present-mode site-diagram flow:
57
+ * each requested type renders its diagram from the project's map terrain
58
+ * and creates a new sheet holding it. `options.types` selects which
59
+ * diagrams to generate (default: all three). Generation is tracked
60
+ * per-proposal — a type whose diagram already exists for the active
61
+ * proposal is **skipped, not duplicated** (the same semantics as the
62
+ * mount-time flow; existing site-diagram sheets are never replaced), so
63
+ * `sheetIds` contains only the sheets created by this call and can be
64
+ * empty when everything already exists. Requires Present mode to be open
65
+ * and the project to have a map terrain to generate from.
66
+ *
67
+ * @param options - Optional `types` — which site diagrams to generate
68
+ * (default: `["location", "streetview", "climate"]`).
69
+ * @returns A {@linkcode PluginPresentationDiagramsGenerateResult} with the
70
+ * `sheetIds` of the sheets created by this call (empty when all requested
71
+ * types were already generated).
72
+ * @throws If Present mode is not open or the project has no map terrain to
73
+ * generate from.
74
+ *
75
+ * @examplePrompt Generate the site diagrams for this project
76
+ * @examplePrompt Create the location, streetview and climate sheets
77
+ * @examplePrompt Add a climate diagram sheet to the presentation
78
+ *
79
+ * # Example
80
+ * ```ts
81
+ * const { sheetIds } = await snaptrude.presentation.diagrams.generateSite({
82
+ * types: ["location", "climate"],
83
+ * })
84
+ * ```
85
+ */
86
+ abstract generateSite(options?: {
87
+ types?: PluginPresentationSiteDiagramType[];
88
+ }): PluginApiReturn<PluginPresentationDiagramsGenerateResult>;
50
89
  /**
51
90
  * Place diagram images onto a sheet.
52
91
  *
@@ -108,8 +147,31 @@ export declare const PluginPresentationDiagramsPlaceResult: z.ZodObject<{
108
147
  shapeIds: z.ZodArray<z.ZodString>;
109
148
  }, z.core.$strip>;
110
149
  export type PluginPresentationDiagramsPlaceResult = z.infer<typeof PluginPresentationDiagramsPlaceResult>;
150
+ /** A site diagram type — the three diagrams of the Present-mode site flow. */
151
+ export declare const PluginPresentationSiteDiagramType: z.ZodEnum<{
152
+ location: "location";
153
+ streetview: "streetview";
154
+ climate: "climate";
155
+ }>;
156
+ export type PluginPresentationSiteDiagramType = z.infer<typeof PluginPresentationSiteDiagramType>;
157
+ /**
158
+ * Arguments for {@linkcode PluginPresentationDiagramsApi.generateSite}.
159
+ *
160
+ * | Property | Type | Description |
161
+ * |---|---|---|
162
+ * | `types` | {@linkcode PluginPresentationSiteDiagramType}`[] \| undefined` | Which site diagrams to generate (default: all three) |
163
+ */
164
+ export declare const PluginPresentationDiagramsGenerateSiteArgs: z.ZodObject<{
165
+ types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
166
+ location: "location";
167
+ streetview: "streetview";
168
+ climate: "climate";
169
+ }>>>;
170
+ }, z.core.$strip>;
171
+ export type PluginPresentationDiagramsGenerateSiteArgs = z.infer<typeof PluginPresentationDiagramsGenerateSiteArgs>;
111
172
  /**
112
- * Result of {@linkcode PluginPresentationDiagramsApi.generateProgram}.
173
+ * Result of {@linkcode PluginPresentationDiagramsApi.generateProgram} and
174
+ * {@linkcode PluginPresentationDiagramsApi.generateSite}.
113
175
  *
114
176
  * | Property | Type | Description |
115
177
  * |---|---|---|
@@ -1 +1 @@
1
- {"version":3,"file":"diagrams.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/diagrams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,8BAAsB,6BAA6B;;IAGjD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,eAAe,IAAI,eAAe,CAAC,wCAAwC,CAAC;IAE5F;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,KAAK,CACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,eAAe,CAAC,qCAAqC,CAAC;CAC1D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC;;;;;;;iBAI9C,CAAA;AACF,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CACvD,OAAO,mCAAmC,CAC3C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC;;iBAEhD,CAAA;AACF,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CACzD,OAAO,qCAAqC,CAC7C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wCAAwC;;iBAEnD,CAAA;AACF,MAAM,MAAM,wCAAwC,GAAG,CAAC,CAAC,KAAK,CAC5D,OAAO,wCAAwC,CAChD,CAAA"}
1
+ {"version":3,"file":"diagrams.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/diagrams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8BAAsB,6BAA6B;;IAGjD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,eAAe,IAAI,eAAe,CAAC,wCAAwC,CAAC;IAE5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;aACa,YAAY,CAAC,OAAO,CAAC,EAAE;QACrC,KAAK,CAAC,EAAE,iCAAiC,EAAE,CAAA;KAC5C,GAAG,eAAe,CAAC,wCAAwC,CAAC;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,KAAK,CACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,eAAe,CAAC,qCAAqC,CAAC;CAC1D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC;;;;;;;iBAI9C,CAAA;AACF,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CACvD,OAAO,mCAAmC,CAC3C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC;;iBAEhD,CAAA;AACF,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CACzD,OAAO,qCAAqC,CAC7C,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC;;;;EAI5C,CAAA;AACF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,iCAAiC,CACzC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,0CAA0C;;;;;;iBAErD,CAAA;AACF,MAAM,MAAM,0CAA0C,GAAG,CAAC,CAAC,KAAK,CAC9D,OAAO,0CAA0C,CAClD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wCAAwC;;iBAEnD,CAAA;AACF,MAAM,MAAM,wCAAwC,GAAG,CAAC,CAAC,KAAK,CAC5D,OAAO,wCAAwC,CAChD,CAAA"}
@@ -6,6 +6,8 @@ import { PluginPresentationPlacedViewsApi } from "./placedViews";
6
6
  import { PluginPresentationDiagramsApi } from "./diagrams";
7
7
  import { PluginPresentationAnnotateApi } from "./annotate";
8
8
  import { PluginPresentationShapesApi } from "./shapes";
9
+ import { PluginPresentationTablesApi } from "./tables";
10
+ import { PluginPresentationSlideshowApi } from "./slideshow";
9
11
  import { PluginPresentationImportApi } from "./import";
10
12
  import { PluginPresentationExportResult, type PluginPresentationExportFormat, type PluginPresentationExportResolution } from "./export";
11
13
  /**
@@ -21,7 +23,9 @@ import { PluginPresentationExportResult, type PluginPresentationExportFormat, ty
21
23
  * - {@linkcode PluginPresentationApi.views} — Saved 2D/3D views (list, get, capture, activate, create)
22
24
  * - {@linkcode PluginPresentationApi.sheets} — Layout sheets (list, get, create, place views)
23
25
  * - {@linkcode PluginPresentationApi.placedViews} — Views already placed on the canvas (move, scale, crop)
24
- * - {@linkcode PluginPresentationApi.diagrams} — Place program/adjacency/site diagram images on sheets
26
+ * - {@linkcode PluginPresentationApi.diagrams} — Generate program/site diagram sheets, place diagram images
27
+ * - {@linkcode PluginPresentationApi.tables} — Place data tables on sheets
28
+ * - {@linkcode PluginPresentationApi.slideshow} — Run the Present-mode slideshow
25
29
  * - {@linkcode PluginPresentationApi.import} — Import reference images/PDFs onto the canvas
26
30
  * - {@linkcode PluginPresentationApi.aiInspiration} — Present-mode AI image/video generation
27
31
  *
@@ -40,6 +44,10 @@ export declare abstract class PluginPresentationApi {
40
44
  abstract annotate: PluginPresentationAnnotateApi;
41
45
  /** Plugin-owned keyed shapes — upsert/remove/list so reruns update instead of duplicating. See {@linkcode PluginPresentationShapesApi}. */
42
46
  abstract shapes: PluginPresentationShapesApi;
47
+ /** Data tables on Present sheets — place string rows as a table shape. See {@linkcode PluginPresentationTablesApi}. */
48
+ abstract tables: PluginPresentationTablesApi;
49
+ /** The Present-mode slideshow — start/stop/getState. See {@linkcode PluginPresentationSlideshowApi}. */
50
+ abstract slideshow: PluginPresentationSlideshowApi;
43
51
  /** Import reference images/PDFs onto the Present canvas. See {@linkcode PluginPresentationImportApi}. */
44
52
  abstract import: PluginPresentationImportApi;
45
53
  /**
@@ -86,6 +94,8 @@ export * from "./placedViews";
86
94
  export * from "./diagrams";
87
95
  export * from "./annotate";
88
96
  export * from "./shapes";
97
+ export * from "./tables";
98
+ export * from "./slideshow";
89
99
  export * from "./import";
90
100
  export * from "./aiInspiration";
91
101
  export * from "./export";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EACL,8BAA8B,EAC9B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACxC,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;;;;;;;GAkBG;AACH,8BAAsB,qBAAqB;IACzC,qEAAqE;IACrE,SAAgB,KAAK,EAAE,0BAA0B,CAAA;IACjD,mHAAmH;IACnH,SAAgB,MAAM,EAAE,2BAA2B,CAAA;IACnD,4JAA4J;IAC5J,SAAgB,WAAW,EAAE,gCAAgC,CAAA;IAC7D,+GAA+G;IAC/G,SAAgB,QAAQ,EAAE,6BAA6B,CAAA;IACvD,wHAAwH;IACxH,SAAgB,QAAQ,EAAE,6BAA6B,CAAA;IACvD,2IAA2I;IAC3I,SAAgB,MAAM,EAAE,2BAA2B,CAAA;IACnD,yGAAyG;IACzG,SAAgB,MAAM,EAAE,2BAA2B,CAAA;IACnD;;;OAGG;IACH,SAAgB,aAAa,EAAE,kCAAkC,CAAA;IAEjE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,MAAM,CACpB,MAAM,EAAE,8BAA8B,EACtC,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,UAAU,CAAC,EAAE,kCAAkC,CAAA;QAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACA,eAAe,CAAC,8BAA8B,CAAC;;CAGnD;AAED,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EACL,8BAA8B,EAC9B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACxC,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8BAAsB,qBAAqB;IACzC,qEAAqE;IACrE,SAAgB,KAAK,EAAE,0BAA0B,CAAA;IACjD,mHAAmH;IACnH,SAAgB,MAAM,EAAE,2BAA2B,CAAA;IACnD,4JAA4J;IAC5J,SAAgB,WAAW,EAAE,gCAAgC,CAAA;IAC7D,+GAA+G;IAC/G,SAAgB,QAAQ,EAAE,6BAA6B,CAAA;IACvD,wHAAwH;IACxH,SAAgB,QAAQ,EAAE,6BAA6B,CAAA;IACvD,2IAA2I;IAC3I,SAAgB,MAAM,EAAE,2BAA2B,CAAA;IACnD,uHAAuH;IACvH,SAAgB,MAAM,EAAE,2BAA2B,CAAA;IACnD,wGAAwG;IACxG,SAAgB,SAAS,EAAE,8BAA8B,CAAA;IACzD,yGAAyG;IACzG,SAAgB,MAAM,EAAE,2BAA2B,CAAA;IACnD;;;OAGG;IACH,SAAgB,aAAa,EAAE,kCAAkC,CAAA;IAEjE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,MAAM,CACpB,MAAM,EAAE,8BAA8B,EACtC,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,UAAU,CAAC,EAAE,kCAAkC,CAAA;QAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACA,eAAe,CAAC,8BAA8B,CAAC;;CAGnD;AAED,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA"}