@snaptrude/plugin-core 0.8.0 → 0.9.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.
Files changed (111) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/api-manifest.full.json +1350 -89
  3. package/api-manifest.json +826 -40
  4. package/dist/api/analysis/daylight.d.ts +603 -0
  5. package/dist/api/analysis/daylight.d.ts.map +1 -0
  6. package/dist/api/analysis/heatmaps.d.ts +438 -14
  7. package/dist/api/analysis/heatmaps.d.ts.map +1 -1
  8. package/dist/api/analysis/index.d.ts +15 -0
  9. package/dist/api/analysis/index.d.ts.map +1 -1
  10. package/dist/api/analysis/solar.d.ts +249 -0
  11. package/dist/api/analysis/solar.d.ts.map +1 -0
  12. package/dist/api/analysis/weather.d.ts +193 -0
  13. package/dist/api/analysis/weather.d.ts.map +1 -0
  14. package/dist/api/core/camera/index.d.ts +37 -0
  15. package/dist/api/core/camera/index.d.ts.map +1 -1
  16. package/dist/api/core/geom/create/index.d.ts +318 -1
  17. package/dist/api/core/geom/create/index.d.ts.map +1 -1
  18. package/dist/api/core/index.d.ts +9 -0
  19. package/dist/api/core/index.d.ts.map +1 -1
  20. package/dist/api/core/io/export/index.d.ts +3 -1
  21. package/dist/api/core/io/export/index.d.ts.map +1 -1
  22. package/dist/api/core/io/import/index.d.ts +61 -0
  23. package/dist/api/core/io/import/index.d.ts.map +1 -1
  24. package/dist/api/core/mode/index.d.ts +99 -0
  25. package/dist/api/core/mode/index.d.ts.map +1 -0
  26. package/dist/api/core/storeys/index.d.ts +251 -0
  27. package/dist/api/core/storeys/index.d.ts.map +1 -0
  28. package/dist/api/core/tags.d.ts +24 -0
  29. package/dist/api/core/tags.d.ts.map +1 -1
  30. package/dist/api/core/zoom/index.d.ts +4 -0
  31. package/dist/api/core/zoom/index.d.ts.map +1 -1
  32. package/dist/api/design/create/index.d.ts +115 -4
  33. package/dist/api/design/create/index.d.ts.map +1 -1
  34. package/dist/api/design/delete/index.d.ts +3 -0
  35. package/dist/api/design/delete/index.d.ts.map +1 -1
  36. package/dist/api/design/query/geometry/index.d.ts +112 -0
  37. package/dist/api/design/query/geometry/index.d.ts.map +1 -1
  38. package/dist/api/design/query/index.d.ts +4 -0
  39. package/dist/api/design/query/index.d.ts.map +1 -1
  40. package/dist/api/design/query/referenceLines.d.ts +45 -0
  41. package/dist/api/design/query/referenceLines.d.ts.map +1 -0
  42. package/dist/api/design/query/spaces.d.ts +173 -0
  43. package/dist/api/design/query/spaces.d.ts.map +1 -1
  44. package/dist/api/design/transform/index.d.ts +12 -0
  45. package/dist/api/design/transform/index.d.ts.map +1 -1
  46. package/dist/api/design/update/index.d.ts +51 -1
  47. package/dist/api/design/update/index.d.ts.map +1 -1
  48. package/dist/api/entity/buildableEnvelope.d.ts +4 -0
  49. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
  50. package/dist/api/entity/referenceLine.d.ts +8 -0
  51. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  52. package/dist/api/entity/story.d.ts +20 -0
  53. package/dist/api/entity/story.d.ts.map +1 -1
  54. package/dist/api/index.d.ts +5 -0
  55. package/dist/api/index.d.ts.map +1 -1
  56. package/dist/api/presentation/export.d.ts +4 -0
  57. package/dist/api/presentation/export.d.ts.map +1 -1
  58. package/dist/api/presentation/import.d.ts +6 -0
  59. package/dist/api/presentation/import.d.ts.map +1 -1
  60. package/dist/api/presentation/index.d.ts +9 -0
  61. package/dist/api/presentation/index.d.ts.map +1 -1
  62. package/dist/api/presentation/placedViews.d.ts +370 -0
  63. package/dist/api/presentation/placedViews.d.ts.map +1 -0
  64. package/dist/api/presentation/shapes.d.ts +481 -0
  65. package/dist/api/presentation/shapes.d.ts.map +1 -0
  66. package/dist/api/program/site.d.ts +94 -0
  67. package/dist/api/program/site.d.ts.map +1 -1
  68. package/dist/api/program/spreadsheet.d.ts +260 -28
  69. package/dist/api/program/spreadsheet.d.ts.map +1 -1
  70. package/dist/api/workspace/index.d.ts +460 -0
  71. package/dist/api/workspace/index.d.ts.map +1 -0
  72. package/dist/index.cjs +2625 -1758
  73. package/dist/index.cjs.map +1 -1
  74. package/dist/index.js +2515 -1758
  75. package/dist/index.js.map +1 -1
  76. package/package.json +3 -2
  77. package/scripts/generate-manifest.mjs +45 -0
  78. package/src/api/analysis/daylight.ts +470 -0
  79. package/src/api/analysis/heatmaps.ts +444 -17
  80. package/src/api/analysis/index.ts +15 -0
  81. package/src/api/analysis/solar.ts +237 -0
  82. package/src/api/analysis/weather.ts +179 -0
  83. package/src/api/core/camera/index.ts +39 -0
  84. package/src/api/core/geom/create/index.ts +344 -1
  85. package/src/api/core/index.ts +9 -0
  86. package/src/api/core/io/export/index.ts +3 -1
  87. package/src/api/core/io/import/index.ts +64 -0
  88. package/src/api/core/mode/index.ts +96 -0
  89. package/src/api/core/storeys/index.ts +279 -0
  90. package/src/api/core/tags.ts +27 -0
  91. package/src/api/core/zoom/index.ts +4 -0
  92. package/src/api/design/create/index.ts +138 -1
  93. package/src/api/design/delete/index.ts +3 -0
  94. package/src/api/design/query/geometry/index.ts +125 -3
  95. package/src/api/design/query/index.ts +4 -0
  96. package/src/api/design/query/referenceLines.ts +52 -0
  97. package/src/api/design/query/spaces.ts +143 -0
  98. package/src/api/design/transform/index.ts +12 -0
  99. package/src/api/design/update/index.ts +66 -1
  100. package/src/api/entity/buildableEnvelope.ts +4 -0
  101. package/src/api/entity/referenceLine.ts +8 -0
  102. package/src/api/entity/story.ts +20 -0
  103. package/src/api/index.ts +5 -0
  104. package/src/api/presentation/export.ts +4 -0
  105. package/src/api/presentation/import.ts +6 -0
  106. package/src/api/presentation/index.ts +9 -0
  107. package/src/api/presentation/placedViews.ts +363 -0
  108. package/src/api/presentation/shapes.ts +274 -0
  109. package/src/api/program/site.ts +95 -0
  110. package/src/api/program/spreadsheet.ts +251 -6
  111. package/src/api/workspace/index.ts +516 -0
@@ -47,6 +47,8 @@ export declare abstract class PluginReferenceLineApi {
47
47
  *
48
48
  * const { referenceLineIds } = await snaptrude.entity.referenceLine.createMulti(profile)
49
49
  * ```
50
+ *
51
+ * @deprecated Use `design.create.referenceLines`
50
52
  */
51
53
  abstract createMulti(profile: ProfileHandle): PluginApiReturn<PluginReferenceLineCreateMultiResult>;
52
54
  /**
@@ -73,6 +75,8 @@ export declare abstract class PluginReferenceLineApi {
73
75
  * // result.curve is an opaque CurveHandle; a dedicated curve read API for its
74
76
  * // coordinates is exposed separately via `snaptrude.core.geom.curve`.
75
77
  * ```
78
+ *
79
+ * @deprecated Use `design.query.referenceLines.get`
76
80
  */
77
81
  abstract get(referenceLineId: string, properties: z.infer<typeof PluginReferenceLineGetProperty>[]): PluginApiReturn<PluginReferenceLineGetResult>;
78
82
  /**
@@ -95,6 +99,8 @@ export declare abstract class PluginReferenceLineApi {
95
99
  * const { referenceLineIds } = await snaptrude.entity.referenceLine.getAll()
96
100
  * console.log(`Project has ${referenceLineIds.length} reference lines`)
97
101
  * ```
102
+ *
103
+ * @deprecated Use `design.query.listReferenceLines`
98
104
  */
99
105
  abstract getAll(): PluginApiReturn<PluginReferenceLineGetAllResult>;
100
106
  /**
@@ -115,6 +121,8 @@ export declare abstract class PluginReferenceLineApi {
115
121
  * ```ts
116
122
  * await snaptrude.entity.referenceLine.delete("some-ref-line-id")
117
123
  * ```
124
+ *
125
+ * @deprecated Use `design.delete.entities`
118
126
  */
119
127
  abstract delete(referenceLineId: string): PluginApiReturn<PluginReferenceLineDeleteResult>;
120
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"referenceLine.d.ts","sourceRoot":"","sources":["../../../src/api/entity/referenceLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAe,MAAM,eAAe,CAAA;AAE1D;;;;;;;;;;;GAWG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;aACa,WAAW,CACzB,OAAO,EAAE,aAAa,GACrB,eAAe,CAAC,oCAAoC,CAAC;IAExD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,GAAG,CACjB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,EAAE,GAC3D,eAAe,CAAC,4BAA4B,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;OAoBG;aACa,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC;IAE1E;;;;;;;;;;;;;;;;;;OAkBG;aACa,MAAM,CACpB,eAAe,EAAE,MAAM,GACtB,eAAe,CAAC,+BAA+B,CAAC;CACpD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC;;iBAE7C,CAAA;AAEF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEnG;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC;;iBAE/C,CAAA;AAEF,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAEvG;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;EAEzC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;;iBAGrC,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;iBAI7B,CAAA;AAEZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B;;iBAE1C,CAAA;AAEF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;iBAExC,CAAA;AAEF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,8FAA8F;AAC9F,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"referenceLine.d.ts","sourceRoot":"","sources":["../../../src/api/entity/referenceLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAe,MAAM,eAAe,CAAA;AAE1D;;;;;;;;;;;GAWG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;aACa,WAAW,CACzB,OAAO,EAAE,aAAa,GACrB,eAAe,CAAC,oCAAoC,CAAC;IAExD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;aACa,GAAG,CACjB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,EAAE,GAC3D,eAAe,CAAC,4BAA4B,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;;;OAsBG;aACa,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC;IAE1E;;;;;;;;;;;;;;;;;;;;OAoBG;aACa,MAAM,CACpB,eAAe,EAAE,MAAM,GACtB,eAAe,CAAC,+BAA+B,CAAC;CACpD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC;;iBAE7C,CAAA;AAEF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEnG;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC;;iBAE/C,CAAA;AAEF,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAEvG;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;EAEzC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;;iBAGrC,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;iBAI7B,CAAA;AAEZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B;;iBAE1C,CAAA;AAEF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;iBAExC,CAAA;AAEF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,8FAA8F;AAC9F,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAA"}
@@ -39,6 +39,8 @@ export declare abstract class PluginStoryApi {
39
39
  * const info = await snaptrude.entity.story.get(1, ["height", "name", "spacesCount"])
40
40
  * console.log(info.name, info.height, info.spacesCount)
41
41
  * ```
42
+ *
43
+ * @deprecated Use `core.storeys.get`
42
44
  */
43
45
  abstract get(storyValue: number, properties: PluginStoryGetProperty[]): PluginApiReturn<PluginStoryGetResult>;
44
46
  /**
@@ -62,6 +64,8 @@ export declare abstract class PluginStoryApi {
62
64
  * console.log(`Story ${s.value}: ${s.name} (id: ${s.id})`)
63
65
  * }
64
66
  * ```
67
+ *
68
+ * @deprecated Use `core.storeys.list`
65
69
  */
66
70
  abstract getAll(): PluginApiReturn<PluginStoryGetAllResult>;
67
71
  /**
@@ -88,6 +92,8 @@ export declare abstract class PluginStoryApi {
88
92
  * // Create a new third floor with custom height
89
93
  * const { storyId } = await snaptrude.entity.story.create(3, 4.5)
90
94
  * ```
95
+ *
96
+ * @deprecated Use `core.storeys.create`
91
97
  */
92
98
  abstract create(storyValue: number, height?: number): PluginApiReturn<PluginStoryCreateResult>;
93
99
  /**
@@ -136,6 +142,8 @@ export declare abstract class PluginStoryApi {
136
142
  * // Rename only, leaving the height untouched.
137
143
  * await snaptrude.entity.story.update(1, undefined, { name: "Lobby" })
138
144
  * ```
145
+ *
146
+ * @deprecated Use `core.storeys.update`
139
147
  */
140
148
  abstract update(storyValue: number, height?: number, options?: {
141
149
  name?: string;
@@ -160,6 +168,8 @@ export declare abstract class PluginStoryApi {
160
168
  * // Activate story 2, then draw a wall — it lands on story 2.
161
169
  * await snaptrude.entity.story.setActive(2)
162
170
  * ```
171
+ *
172
+ * @deprecated Use `core.storeys.setActive`
163
173
  */
164
174
  abstract setActive(storyValue: number): PluginApiReturn<PluginStorySetActiveResult>;
165
175
  /**
@@ -184,6 +194,8 @@ export declare abstract class PluginStoryApi {
184
194
  * const { newActiveStory } = await snaptrude.entity.story.delete(3)
185
195
  * console.log(`Deleted story 3; now on story ${newActiveStory}`)
186
196
  * ```
197
+ *
198
+ * @deprecated Use `core.storeys.delete`
187
199
  */
188
200
  abstract delete(storyValue: number): PluginApiReturn<PluginStoryDeleteResult>;
189
201
  /**
@@ -220,6 +232,12 @@ export declare abstract class PluginStoryApi {
220
232
  * @examplePrompt Repeat this level upwards with its own independent geometry
221
233
  * @examplePrompt Duplicate just the selected walls onto the next floor up
222
234
  *
235
+ * @performance For storeys that share a layout, duplicate the storey instead of recreating
236
+ * its contents floor by floor — this copies every eligible element in one call, and the
237
+ * default instanced copies keep the floors linked. To stack many identical floors, either
238
+ * call this per level or capture the storey's component ids and
239
+ * `design.create.copy(ids, oneFloorRise, { count })` to lay them all down in a single call.
240
+ *
223
241
  * # Example
224
242
  * ```ts
225
243
  * // Duplicate the whole active story one level up (instanced copies).
@@ -228,6 +246,8 @@ export declare abstract class PluginStoryApi {
228
246
  * console.log(`Copied ${created.length} elements onto story ${targetStories}`)
229
247
  * if (skipped) console.log(`${skipped} elements were skipped`)
230
248
  * ```
249
+ *
250
+ * @deprecated Use `core.storeys.copy`
231
251
  */
232
252
  abstract duplicate(direction: "up" | "down", options?: {
233
253
  components?: ComponentHandle[];
@@ -1 +1 @@
1
- {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../../src/api/entity/story.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../../src/api/entity/story.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { PluginEntityApi } from "./entity";
4
4
  import { PluginProgramApi } from "./program";
5
5
  import { PluginPresentationApi } from "./presentation";
6
6
  import { PluginAnalysisApi } from "./analysis";
7
+ import { PluginWorkspaceApi } from "./workspace";
7
8
  /**
8
9
  * Root API surface for Snaptrude plugins.
9
10
  *
@@ -15,6 +16,7 @@ import { PluginAnalysisApi } from "./analysis";
15
16
  * - {@linkcode PluginApi.program} — Program-mode planning reads (departments, metrics)
16
17
  * - {@linkcode PluginApi.presentation} — Presentation preparation (views, AI Inspiration)
17
18
  * - {@linkcode PluginApi.analysis} — Sustainability analysis (sunpath, shadows, sunlight/illuminance heatmaps)
19
+ * - {@linkcode PluginApi.workspace} — Dashboard surface: projects and teams
18
20
  */
19
21
  export declare abstract class PluginApi {
20
22
  /** Core math, geometry, history, and units primitives. See {@linkcode PluginCoreApi}. */
@@ -29,6 +31,8 @@ export declare abstract class PluginApi {
29
31
  abstract presentation: PluginPresentationApi;
30
32
  /** Sustainability analysis — sun & daylight studies. See {@linkcode PluginAnalysisApi}. */
31
33
  abstract analysis: PluginAnalysisApi;
34
+ /** Dashboard surface — projects and teams. See {@linkcode PluginWorkspaceApi}. */
35
+ abstract workspace: PluginWorkspaceApi;
32
36
  constructor();
33
37
  }
34
38
  export * from "./core";
@@ -37,4 +41,5 @@ export * from "./entity";
37
41
  export * from "./program";
38
42
  export * from "./presentation";
39
43
  export * from "./analysis";
44
+ export * from "./workspace";
40
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;;;;;;;;GAWG;AACH,8BAAsB,SAAS;IAC7B,yFAAyF;IACzF,SAAgB,IAAI,EAAE,aAAa,CAAA;IACnC,0EAA0E;IAC1E,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,8EAA8E;IAC9E,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,oGAAoG;IACpG,SAAgB,OAAO,EAAE,gBAAgB,CAAA;IACzC,2FAA2F;IAC3F,SAAgB,YAAY,EAAE,qBAAqB,CAAA;IACnD,2FAA2F;IAC3F,SAAgB,QAAQ,EAAE,iBAAiB,CAAA;;CAG5C;AAED,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD;;;;;;;;;;;;GAYG;AACH,8BAAsB,SAAS;IAC7B,yFAAyF;IACzF,SAAgB,IAAI,EAAE,aAAa,CAAA;IACnC,0EAA0E;IAC1E,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,8EAA8E;IAC9E,SAAgB,MAAM,EAAE,eAAe,CAAA;IACvC,oGAAoG;IACpG,SAAgB,OAAO,EAAE,gBAAgB,CAAA;IACzC,2FAA2F;IAC3F,SAAgB,YAAY,EAAE,qBAAqB,CAAA;IACnD,2FAA2F;IAC3F,SAAgB,QAAQ,EAAE,iBAAiB,CAAA;IAC3C,kFAAkF;IAClF,SAAgB,SAAS,EAAE,kBAAkB,CAAA;;CAG9C;AAED,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
@@ -19,6 +19,10 @@ import * as z from "zod";
19
19
  *
20
20
  * Accessed via `snaptrude.presentation.export`.
21
21
  *
22
+ * For a different export intent, see `core.io.export.model` (the 3D model as a
23
+ * GLB/OBJ/FBX/3DS file) and `program.spreadsheet.export` (the area-program /
24
+ * takeoff workbook as XLSX/PDF/CSV).
25
+ *
22
26
  * The schemas and result types live here; the callable method is declared on
23
27
  * {@linkcode PluginPresentationApi.export}.
24
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,yEAAyE;AACzE,eAAO,MAAM,8BAA8B;;;;EAAgC,CAAA;AAC3E,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,8BAA8B,CACtC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAA;AACF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,kCAAkC,CAC1C,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;iBAMvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B;;;;;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,8BAA8B,CACtC,CAAA"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,yEAAyE;AACzE,eAAO,MAAM,8BAA8B;;;;EAAgC,CAAA;AAC3E,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,8BAA8B,CACtC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAA;AACF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,kCAAkC,CAC1C,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;iBAMvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B;;;;;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,8BAA8B,CACtC,CAAA"}
@@ -18,6 +18,9 @@ export declare abstract class PluginPresentationImportApi {
18
18
  /**
19
19
  * Import a reference image onto the current Present sheet.
20
20
  *
21
+ * To place the image as a **scene** underlay to trace over — on a storey,
22
+ * not the Present canvas — use `core.io.import.image` instead.
23
+ *
21
24
  * @param source - The asset to import: exactly one of `url` or `dataUrl`.
22
25
  * @param options - Optional `position` — where to place the image on the
23
26
  * sheet.
@@ -52,6 +55,9 @@ export declare abstract class PluginPresentationImportApi {
52
55
  *
53
56
  * Each page is converted to vector SVG and placed as a canvas shape.
54
57
  *
58
+ * To bring the PDF into the **scene** as a traceable underlay — on a storey,
59
+ * not the Present canvas — use `core.io.import.pdf` instead.
60
+ *
55
61
  * @param source - The asset to import: exactly one of `url` or `dataUrl`.
56
62
  * @param options - Optional `position` — where to place the pages on the
57
63
  * sheet.
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,8BAAsB,2BAA2B;;IAG/C;;;;;;;;;;;;;;;;;;;;;;OAsBG;aACa,KAAK,CACnB,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,eAAe,CAAC,8BAA8B,CAAC;IAElD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;aACa,GAAG,CACjB,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,eAAe,CAAC,8BAA8B,CAAC;IAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;aACa,GAAG,CACjB,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,eAAe,CAAC,8BAA8B,CAAC;CACnD;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B;;;;;;;iBAQrC,CAAA;AACJ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,8BAA8B,CACtC,CAAA"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,8BAAsB,2BAA2B;;IAG/C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;aACa,KAAK,CACnB,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,eAAe,CAAC,8BAA8B,CAAC;IAElD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;aACa,GAAG,CACjB,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,eAAe,CAAC,8BAA8B,CAAC;IAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;aACa,GAAG,CACjB,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAC1C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChD,eAAe,CAAC,8BAA8B,CAAC;CACnD;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B;;;;;;;iBAQrC,CAAA;AACJ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,8BAA8B,CACtC,CAAA"}
@@ -2,8 +2,10 @@ import { PluginApiReturn } from "../../types";
2
2
  import { PluginPresentationViewsApi } from "./views";
3
3
  import { PluginPresentationAIInspirationApi } from "./aiInspiration";
4
4
  import { PluginPresentationSheetsApi } from "./sheets";
5
+ import { PluginPresentationPlacedViewsApi } from "./placedViews";
5
6
  import { PluginPresentationDiagramsApi } from "./diagrams";
6
7
  import { PluginPresentationAnnotateApi } from "./annotate";
8
+ import { PluginPresentationShapesApi } from "./shapes";
7
9
  import { PluginPresentationImportApi } from "./import";
8
10
  import { PluginPresentationExportResult, type PluginPresentationExportFormat, type PluginPresentationExportResolution } from "./export";
9
11
  /**
@@ -18,6 +20,7 @@ import { PluginPresentationExportResult, type PluginPresentationExportFormat, ty
18
20
  *
19
21
  * - {@linkcode PluginPresentationApi.views} — Saved 2D/3D views (list, get, capture, activate, create)
20
22
  * - {@linkcode PluginPresentationApi.sheets} — Layout sheets (list, get, create, place views)
23
+ * - {@linkcode PluginPresentationApi.placedViews} — Views already placed on the canvas (move, scale, crop)
21
24
  * - {@linkcode PluginPresentationApi.diagrams} — Place program/adjacency/site diagram images on sheets
22
25
  * - {@linkcode PluginPresentationApi.import} — Import reference images/PDFs onto the canvas
23
26
  * - {@linkcode PluginPresentationApi.aiInspiration} — Present-mode AI image/video generation
@@ -29,10 +32,14 @@ export declare abstract class PluginPresentationApi {
29
32
  abstract views: PluginPresentationViewsApi;
30
33
  /** Layout sheets — list/get/create and place views (Present mode). See {@linkcode PluginPresentationSheetsApi}. */
31
34
  abstract sheets: PluginPresentationSheetsApi;
35
+ /** Placed views — layout of the view shapes on the canvas: move/scale/setScale/setCrop (Present mode). See {@linkcode PluginPresentationPlacedViewsApi}. */
36
+ abstract placedViews: PluginPresentationPlacedViewsApi;
32
37
  /** Program/adjacency/site diagrams — place images on sheets. See {@linkcode PluginPresentationDiagramsApi}. */
33
38
  abstract diagrams: PluginPresentationDiagramsApi;
34
39
  /** Annotations on Present-mode sheets — text/arrows/notes/geo shapes. See {@linkcode PluginPresentationAnnotateApi}. */
35
40
  abstract annotate: PluginPresentationAnnotateApi;
41
+ /** Plugin-owned keyed shapes — upsert/remove/list so reruns update instead of duplicating. See {@linkcode PluginPresentationShapesApi}. */
42
+ abstract shapes: PluginPresentationShapesApi;
36
43
  /** Import reference images/PDFs onto the Present canvas. See {@linkcode PluginPresentationImportApi}. */
37
44
  abstract import: PluginPresentationImportApi;
38
45
  /**
@@ -75,8 +82,10 @@ export declare abstract class PluginPresentationApi {
75
82
  }
76
83
  export * from "./views";
77
84
  export * from "./sheets";
85
+ export * from "./placedViews";
78
86
  export * from "./diagrams";
79
87
  export * from "./annotate";
88
+ export * from "./shapes";
80
89
  export * from "./import";
81
90
  export * from "./aiInspiration";
82
91
  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,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EACL,8BAA8B,EAC9B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACxC,MAAM,UAAU,CAAA;AAEjB;;;;;;;;;;;;;;;;;GAiBG;AACH,8BAAsB,qBAAqB;IACzC,qEAAqE;IACrE,SAAgB,KAAK,EAAE,0BAA0B,CAAA;IACjD,mHAAmH;IACnH,SAAgB,MAAM,EAAE,2BAA2B,CAAA;IACnD,+GAA+G;IAC/G,SAAgB,QAAQ,EAAE,6BAA6B,CAAA;IACvD,wHAAwH;IACxH,SAAgB,QAAQ,EAAE,6BAA6B,CAAA;IACvD,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,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,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,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"}
@@ -0,0 +1,370 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../types";
3
+ import { PluginSheetPosition } from "./sheets";
4
+ /**
5
+ * Placed views — the view shapes already laid out on the Present canvas.
6
+ *
7
+ * A **placed view** is a saved view that has been dropped onto a layout sheet
8
+ * (or the open canvas) — the live linked view shape
9
+ * {@linkcode PluginPresentationSheetsApi.place} and the Present views panel's
10
+ * drag-drop create. These methods read and edit the **layout** of those
11
+ * shapes: where they sit, how big they are, their architectural scale, and
12
+ * their crop. To refresh a placed view's **content** from the current model,
13
+ * use `sheets.updatePlacedView` — content refresh lives on `sheets`,
14
+ * layout lives here.
15
+ *
16
+ * Reads (`list`) return `[]` when Present mode is closed; `get` and every
17
+ * write require Present mode to be open.
18
+ *
19
+ * Accessed via `snaptrude.presentation.placedViews`.
20
+ */
21
+ export declare abstract class PluginPresentationPlacedViewsApi {
22
+ constructor();
23
+ /**
24
+ * List the placed views in the presentation.
25
+ *
26
+ * Returns every placed view shape on the Present canvas — those nested on a
27
+ * layout sheet (with that sheet's id) and those sitting loose on the canvas
28
+ * (`sheetId: null`). Pass `sheetId` to list only the views placed on that
29
+ * sheet.
30
+ *
31
+ * @param sheetId - Optional sheet id to filter by.
32
+ * @returns A {@linkcode PluginPresentationPlacedViewsListResult} with a
33
+ * `placedViews` array (empty when Present mode is closed or nothing is
34
+ * placed).
35
+ * @throws If `sheetId` is given but is not a sheet (with Present mode open).
36
+ *
37
+ * @examplePrompt Which views are placed on this sheet?
38
+ * @examplePrompt List all the placed views in the presentation
39
+ * @examplePrompt What's laid out on sheet 2?
40
+ * @examplePrompt Show me every view on the Present canvas
41
+ *
42
+ * # Example
43
+ * ```ts
44
+ * const { placedViews } = await snaptrude.presentation.placedViews.list("sheet_1")
45
+ * ```
46
+ */
47
+ abstract list(sheetId?: string): PluginApiReturn<PluginPresentationPlacedViewsListResult>;
48
+ /**
49
+ * Get a single placed view by its shape id.
50
+ *
51
+ * `shapeId` is the id `sheets.place` returned (also reported by `list`).
52
+ *
53
+ * @param shapeId - The id of the placed view shape to read.
54
+ * @returns The matching {@linkcode PluginPlacedView}.
55
+ * @throws If Present mode is not open, or `shapeId` is unknown or is not a
56
+ * placed view.
57
+ *
58
+ * @examplePrompt Get the placed view I just dropped on the sheet
59
+ * @examplePrompt Read the position and scale of this placed view
60
+ * @examplePrompt What's the crop on shape_123?
61
+ *
62
+ * # Example
63
+ * ```ts
64
+ * const placed = await snaptrude.presentation.placedViews.get(shapeId)
65
+ * console.log(placed.position, placed.scale)
66
+ * ```
67
+ */
68
+ abstract get(shapeId: string): PluginApiReturn<PluginPlacedView>;
69
+ /**
70
+ * Move a placed view.
71
+ *
72
+ * Repositions the placed view on its sheet — `position` is the new top-left
73
+ * in sheet coordinates (page coordinates when the view is not on a sheet).
74
+ * Pass `options.sheetId` to move it onto another sheet: the view is
75
+ * reparented to that sheet and then positioned at `position` in the new
76
+ * sheet's coordinates. A grouped placed view (e.g. a sustainability 3D view
77
+ * with its legend) moves as one unit. Requires Present mode to be open.
78
+ *
79
+ * @param shapeId - The placed view shape to move.
80
+ * @param position - New top-left position (sheet-local; page coordinates
81
+ * when off-sheet).
82
+ * @param options - Optional `sheetId` — move the view onto that sheet.
83
+ * @returns The updated {@linkcode PluginPlacedView}.
84
+ * @throws If Present mode is not open, `shapeId` is unknown or is not a
85
+ * placed view, or `options.sheetId` is given but is not a sheet.
86
+ *
87
+ * @examplePrompt Move the site plan view to the top-left of sheet 2
88
+ * @examplePrompt Reposition this placed view to 100, 200
89
+ * @examplePrompt Move the hero perspective onto the cover sheet
90
+ *
91
+ * # Example
92
+ * ```ts
93
+ * await snaptrude.presentation.placedViews.move(shapeId, { x: 50, y: 50 }, {
94
+ * sheetId: "sheet_2",
95
+ * })
96
+ * ```
97
+ */
98
+ abstract move(shapeId: string, position: PluginSheetPosition, options?: {
99
+ sheetId?: string;
100
+ }): PluginApiReturn<PluginPlacedView>;
101
+ /**
102
+ * Resize a placed view by a uniform factor.
103
+ *
104
+ * Scales the placed view about its top-left corner — the same resize as
105
+ * dragging a corner handle, aspect ratio held. Works for 2D and 3D views;
106
+ * labels and grouped legends resize with it. For a 2D view the **printed
107
+ * architectural scale changes proportionally** (doubling the size of a
108
+ * 1:100 plan makes it a 1:50 plan) — use
109
+ * {@linkcode PluginPresentationPlacedViewsApi.setScale} to land on an exact
110
+ * standard scale instead. Requires Present mode to be open.
111
+ *
112
+ * @param shapeId - The placed view shape to resize.
113
+ * @param factor - Uniform scale factor, between `0.01` and `100`
114
+ * (`2` doubles the size, `0.5` halves it).
115
+ * @returns The updated {@linkcode PluginPlacedView}.
116
+ * @throws If Present mode is not open, `shapeId` is unknown or is not a
117
+ * placed view, or `factor` is not a finite number between 0.01 and 100.
118
+ *
119
+ * @examplePrompt Make this placed view twice as big
120
+ * @examplePrompt Shrink the placed 3D view to half its size
121
+ * @examplePrompt Scale the placed plan up by 50%
122
+ *
123
+ * # Example
124
+ * ```ts
125
+ * await snaptrude.presentation.placedViews.scale(shapeId, 2)
126
+ * ```
127
+ */
128
+ abstract scale(shapeId: string, factor: number): PluginApiReturn<PluginPlacedView>;
129
+ /**
130
+ * Set a placed view's architectural scale.
131
+ *
132
+ * Applies a standard architectural scale — the same write the placed view's
133
+ * Scale dropdown performs. The view (and its labels) is resized about its
134
+ * top-left corner so it prints at the given scale. `scale` must be one of
135
+ * the standard values for the project's unit system (metric `10, 20, 50,
136
+ * 100, 150, 200, 250, 500, 1000`; imperial e.g. `48` for 1/4″ = 1′, `96`
137
+ * for 1/8″ = 1′, `120` for 1″ = 10′) — the same validation as
138
+ * `sheets.place`. 3D views have no architectural scale — calling this on
139
+ * one throws. Requires Present mode to be open.
140
+ *
141
+ * @param shapeId - The placed view shape to set the scale of.
142
+ * @param scale - A standard scale value for the project's unit system.
143
+ * @returns The updated {@linkcode PluginPlacedView}.
144
+ * @throws If Present mode is not open, `shapeId` is unknown or is not a
145
+ * placed view, `scale` is not a standard value for the project's unit
146
+ * system, or the placed view is a 3D view.
147
+ *
148
+ * @examplePrompt Set the plan to 1:100
149
+ * @examplePrompt Change the placed floor plan to 1:50 scale
150
+ * @examplePrompt Make this view print at quarter-inch scale
151
+ *
152
+ * # Example
153
+ * ```ts
154
+ * await snaptrude.presentation.placedViews.setScale(shapeId, 100) // 1:100
155
+ * ```
156
+ */
157
+ abstract setScale(shapeId: string, scale: number): PluginApiReturn<PluginPlacedView>;
158
+ /**
159
+ * Crop a placed view, or clear its crop.
160
+ *
161
+ * `crop` selects the visible window as **fractions (0–1) of the uncropped
162
+ * view** — `topLeft` must be strictly less than `bottomRight` on both axes.
163
+ * The visible region stays anchored on the page (the same behavior as the
164
+ * interactive crop), labels that fall outside the crop are hidden, and the
165
+ * view's architectural scale is untouched. Pass `null` to clear the crop
166
+ * and restore the full view in its uncropped footprint (the interactive
167
+ * double-click-edge reset). The crop **survives a content refresh**
168
+ * (`sheets.updatePlacedView` recomputes it against the refreshed content
169
+ * and only clears it when the refreshed view no longer overlaps the cropped
170
+ * region). Requires Present mode to be open.
171
+ *
172
+ * @param shapeId - The placed view shape to crop.
173
+ * @param crop - The crop window ({@linkcode PluginPlacedViewCrop},
174
+ * fractions of the uncropped view), or `null` to clear.
175
+ * @returns The updated {@linkcode PluginPlacedView}.
176
+ * @throws If Present mode is not open, `shapeId` is unknown or is not a
177
+ * placed view, or `crop` is not a valid 0–1 rectangle with
178
+ * `topLeft < bottomRight` on both axes.
179
+ *
180
+ * @examplePrompt Crop the placed view to its left half
181
+ * @examplePrompt Crop this view to the top-right quarter
182
+ * @examplePrompt Remove the crop from the placed plan
183
+ *
184
+ * # Example
185
+ * ```ts
186
+ * // keep the left half of the view
187
+ * await snaptrude.presentation.placedViews.setCrop(shapeId, {
188
+ * topLeft: { x: 0, y: 0 },
189
+ * bottomRight: { x: 0.5, y: 1 },
190
+ * })
191
+ * await snaptrude.presentation.placedViews.setCrop(shapeId, null) // clear
192
+ * ```
193
+ */
194
+ abstract setCrop(shapeId: string, crop: PluginPlacedViewCrop | null): PluginApiReturn<PluginPlacedView>;
195
+ }
196
+ /**
197
+ * A crop window on a placed view, as fractions (0–1) of the **uncropped**
198
+ * view. `topLeft` must be strictly less than `bottomRight` on both axes.
199
+ *
200
+ * | Property | Type | Description |
201
+ * |---|---|---|
202
+ * | `topLeft` | `{ x: number, y: number }` | Top-left of the visible window (fractions 0–1) |
203
+ * | `bottomRight` | `{ x: number, y: number }` | Bottom-right of the visible window (fractions 0–1) |
204
+ */
205
+ export declare const PluginPlacedViewCrop: z.ZodObject<{
206
+ topLeft: z.ZodObject<{
207
+ x: z.ZodNumber;
208
+ y: z.ZodNumber;
209
+ }, z.core.$strip>;
210
+ bottomRight: z.ZodObject<{
211
+ x: z.ZodNumber;
212
+ y: z.ZodNumber;
213
+ }, z.core.$strip>;
214
+ }, z.core.$strip>;
215
+ export type PluginPlacedViewCrop = z.infer<typeof PluginPlacedViewCrop>;
216
+ /**
217
+ * A view placed on the Present canvas.
218
+ *
219
+ * | Property | Type | Description |
220
+ * |---|---|---|
221
+ * | `shapeId` | `string` | Id of the placed view shape (the id `sheets.place` returns) |
222
+ * | `sheetId` | `string \| null` | The sheet it sits on (`null` when placed loose on the canvas) |
223
+ * | `title` | `string` | The saved view's title |
224
+ * | `viewId` | `string` | Id of the saved view it was placed from |
225
+ * | `position` | {@linkcode PluginSheetPosition} | Top-left position — sheet-local when on a sheet, page coordinates otherwise |
226
+ * | `size` | `{ width: number, height: number }` | Displayed size on the canvas |
227
+ * | `scale` | `number \| null` | Architectural scale (e.g. `100` = 1:100); `null` for 3D views |
228
+ * | `is3d` | `boolean` | Whether it is a 3D view (no architectural scale) |
229
+ * | `rotation` | `number` | Rotation in radians (nonzero only for 3D views) |
230
+ * | `crop` | {@linkcode PluginPlacedViewCrop}` \| null` | Crop window (`null` when uncropped) |
231
+ * | `isUnlinked` | `boolean` | Whether the source proposal was removed (an unlinked view no longer refreshes) |
232
+ */
233
+ export declare const PluginPlacedView: z.ZodObject<{
234
+ shapeId: z.ZodString;
235
+ sheetId: z.ZodNullable<z.ZodString>;
236
+ title: z.ZodString;
237
+ viewId: z.ZodString;
238
+ position: z.ZodObject<{
239
+ x: z.ZodNumber;
240
+ y: z.ZodNumber;
241
+ }, z.core.$strip>;
242
+ size: z.ZodObject<{
243
+ width: z.ZodNumber;
244
+ height: z.ZodNumber;
245
+ }, z.core.$strip>;
246
+ scale: z.ZodNullable<z.ZodNumber>;
247
+ is3d: z.ZodBoolean;
248
+ rotation: z.ZodNumber;
249
+ crop: z.ZodNullable<z.ZodObject<{
250
+ topLeft: z.ZodObject<{
251
+ x: z.ZodNumber;
252
+ y: z.ZodNumber;
253
+ }, z.core.$strip>;
254
+ bottomRight: z.ZodObject<{
255
+ x: z.ZodNumber;
256
+ y: z.ZodNumber;
257
+ }, z.core.$strip>;
258
+ }, z.core.$strip>>;
259
+ isUnlinked: z.ZodBoolean;
260
+ }, z.core.$strip>;
261
+ export type PluginPlacedView = z.infer<typeof PluginPlacedView>;
262
+ /** Arguments for {@linkcode PluginPresentationPlacedViewsApi.list}. */
263
+ export declare const PluginPresentationPlacedViewsListArgs: z.ZodObject<{
264
+ sheetId: z.ZodOptional<z.ZodString>;
265
+ }, z.core.$strip>;
266
+ export type PluginPresentationPlacedViewsListArgs = z.infer<typeof PluginPresentationPlacedViewsListArgs>;
267
+ /** Result of {@linkcode PluginPresentationPlacedViewsApi.list}. */
268
+ export declare const PluginPresentationPlacedViewsListResult: z.ZodObject<{
269
+ placedViews: z.ZodArray<z.ZodObject<{
270
+ shapeId: z.ZodString;
271
+ sheetId: z.ZodNullable<z.ZodString>;
272
+ title: z.ZodString;
273
+ viewId: z.ZodString;
274
+ position: z.ZodObject<{
275
+ x: z.ZodNumber;
276
+ y: z.ZodNumber;
277
+ }, z.core.$strip>;
278
+ size: z.ZodObject<{
279
+ width: z.ZodNumber;
280
+ height: z.ZodNumber;
281
+ }, z.core.$strip>;
282
+ scale: z.ZodNullable<z.ZodNumber>;
283
+ is3d: z.ZodBoolean;
284
+ rotation: z.ZodNumber;
285
+ crop: z.ZodNullable<z.ZodObject<{
286
+ topLeft: z.ZodObject<{
287
+ x: z.ZodNumber;
288
+ y: z.ZodNumber;
289
+ }, z.core.$strip>;
290
+ bottomRight: z.ZodObject<{
291
+ x: z.ZodNumber;
292
+ y: z.ZodNumber;
293
+ }, z.core.$strip>;
294
+ }, z.core.$strip>>;
295
+ isUnlinked: z.ZodBoolean;
296
+ }, z.core.$strip>>;
297
+ }, z.core.$strip>;
298
+ export type PluginPresentationPlacedViewsListResult = z.infer<typeof PluginPresentationPlacedViewsListResult>;
299
+ /** Arguments for {@linkcode PluginPresentationPlacedViewsApi.get}. */
300
+ export declare const PluginPresentationPlacedViewsGetArgs: z.ZodObject<{
301
+ shapeId: z.ZodString;
302
+ }, z.core.$strip>;
303
+ export type PluginPresentationPlacedViewsGetArgs = z.infer<typeof PluginPresentationPlacedViewsGetArgs>;
304
+ /**
305
+ * Arguments for {@linkcode PluginPresentationPlacedViewsApi.move}.
306
+ *
307
+ * | Property | Type | Description |
308
+ * |---|---|---|
309
+ * | `shapeId` | `string` | The placed view shape to move |
310
+ * | `position` | {@linkcode PluginSheetPosition} | New top-left position (sheet-local; page coordinates when off-sheet) |
311
+ * | `sheetId` | `string`? | Move the view onto this sheet |
312
+ */
313
+ export declare const PluginPresentationPlacedViewsMoveArgs: z.ZodObject<{
314
+ shapeId: z.ZodString;
315
+ position: z.ZodObject<{
316
+ x: z.ZodNumber;
317
+ y: z.ZodNumber;
318
+ }, z.core.$strip>;
319
+ sheetId: z.ZodOptional<z.ZodString>;
320
+ }, z.core.$strip>;
321
+ export type PluginPresentationPlacedViewsMoveArgs = z.infer<typeof PluginPresentationPlacedViewsMoveArgs>;
322
+ /**
323
+ * Arguments for {@linkcode PluginPresentationPlacedViewsApi.scale}.
324
+ *
325
+ * | Property | Type | Description |
326
+ * |---|---|---|
327
+ * | `shapeId` | `string` | The placed view shape to resize |
328
+ * | `factor` | `number` | Uniform scale factor (0.01–100) |
329
+ */
330
+ export declare const PluginPresentationPlacedViewsScaleArgs: z.ZodObject<{
331
+ shapeId: z.ZodString;
332
+ factor: z.ZodNumber;
333
+ }, z.core.$strip>;
334
+ export type PluginPresentationPlacedViewsScaleArgs = z.infer<typeof PluginPresentationPlacedViewsScaleArgs>;
335
+ /**
336
+ * Arguments for {@linkcode PluginPresentationPlacedViewsApi.setScale}.
337
+ *
338
+ * | Property | Type | Description |
339
+ * |---|---|---|
340
+ * | `shapeId` | `string` | The placed view shape to set the scale of |
341
+ * | `scale` | `number` | A standard scale value for the project's unit system |
342
+ */
343
+ export declare const PluginPresentationPlacedViewsSetScaleArgs: z.ZodObject<{
344
+ shapeId: z.ZodString;
345
+ scale: z.ZodNumber;
346
+ }, z.core.$strip>;
347
+ export type PluginPresentationPlacedViewsSetScaleArgs = z.infer<typeof PluginPresentationPlacedViewsSetScaleArgs>;
348
+ /**
349
+ * Arguments for {@linkcode PluginPresentationPlacedViewsApi.setCrop}.
350
+ *
351
+ * | Property | Type | Description |
352
+ * |---|---|---|
353
+ * | `shapeId` | `string` | The placed view shape to crop |
354
+ * | `crop` | {@linkcode PluginPlacedViewCrop}` \| null` | The crop window, or `null` to clear |
355
+ */
356
+ export declare const PluginPresentationPlacedViewsSetCropArgs: z.ZodObject<{
357
+ shapeId: z.ZodString;
358
+ crop: z.ZodNullable<z.ZodObject<{
359
+ topLeft: z.ZodObject<{
360
+ x: z.ZodNumber;
361
+ y: z.ZodNumber;
362
+ }, z.core.$strip>;
363
+ bottomRight: z.ZodObject<{
364
+ x: z.ZodNumber;
365
+ y: z.ZodNumber;
366
+ }, z.core.$strip>;
367
+ }, z.core.$strip>>;
368
+ }, z.core.$strip>;
369
+ export type PluginPresentationPlacedViewsSetCropArgs = z.infer<typeof PluginPresentationPlacedViewsSetCropArgs>;
370
+ //# sourceMappingURL=placedViews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placedViews.d.ts","sourceRoot":"","sources":["../../../src/api/presentation/placedViews.ts"],"names":[],"mappings":"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"}