@snaptrude/plugin-core 0.9.5 → 0.9.7

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 (49) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/api-manifest.full.json +8442 -0
  3. package/api-manifest.json +221 -7
  4. package/dist/api/core/camera/index.d.ts +16 -0
  5. package/dist/api/core/camera/index.d.ts.map +1 -1
  6. package/dist/api/core/io/import/index.d.ts +3 -1
  7. package/dist/api/core/io/import/index.d.ts.map +1 -1
  8. package/dist/api/core/project/index.d.ts +68 -1
  9. package/dist/api/core/project/index.d.ts.map +1 -1
  10. package/dist/api/core/storeys/index.d.ts +14 -0
  11. package/dist/api/core/storeys/index.d.ts.map +1 -1
  12. package/dist/api/design/create/bulk-items.d.ts +177 -0
  13. package/dist/api/design/create/bulk-items.d.ts.map +1 -0
  14. package/dist/api/design/create/index.d.ts +273 -8
  15. package/dist/api/design/create/index.d.ts.map +1 -1
  16. package/dist/api/design/create/opening-fields.d.ts +29 -0
  17. package/dist/api/design/create/opening-fields.d.ts.map +1 -0
  18. package/dist/api/design/delete/index.d.ts +4 -0
  19. package/dist/api/design/delete/index.d.ts.map +1 -1
  20. package/dist/api/design/dimensions.d.ts +427 -0
  21. package/dist/api/design/dimensions.d.ts.map +1 -0
  22. package/dist/api/design/furniture/index.d.ts +33 -0
  23. package/dist/api/design/furniture/index.d.ts.map +1 -1
  24. package/dist/api/design/index.d.ts +5 -0
  25. package/dist/api/design/index.d.ts.map +1 -1
  26. package/dist/api/design/visibility.d.ts +28 -0
  27. package/dist/api/design/visibility.d.ts.map +1 -1
  28. package/dist/api/presentation/annotate.d.ts +2 -2
  29. package/dist/api/presentation/shapes.d.ts +2 -2
  30. package/dist/handles.d.ts +19 -0
  31. package/dist/handles.d.ts.map +1 -1
  32. package/dist/index.cjs +2019 -1865
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.js +1994 -1865
  35. package/dist/index.js.map +1 -1
  36. package/package.json +13 -13
  37. package/src/api/core/camera/index.ts +17 -0
  38. package/src/api/core/io/import/index.ts +11 -3
  39. package/src/api/core/project/index.ts +62 -1
  40. package/src/api/core/storeys/index.ts +15 -0
  41. package/src/api/design/create/bulk-items.ts +182 -0
  42. package/src/api/design/create/index.ts +296 -18
  43. package/src/api/design/create/opening-fields.ts +29 -0
  44. package/src/api/design/delete/index.ts +4 -0
  45. package/src/api/design/dimensions.ts +453 -0
  46. package/src/api/design/furniture/index.ts +34 -0
  47. package/src/api/design/index.ts +5 -0
  48. package/src/api/design/visibility.ts +34 -0
  49. package/src/handles.ts +24 -0
@@ -0,0 +1,177 @@
1
+ import * as z from "zod";
2
+ /**
3
+ * Maximum items per bulk `design.create.*` call. A bounded request keeps
4
+ * validation, command capture and rollback work finite; split a larger import
5
+ * into separate awaited batches, each with its own undo entry.
6
+ */
7
+ export declare const PLUGIN_CREATE_BATCH_LIMIT = 1000;
8
+ /**
9
+ * One wall run to create via {@linkcode PluginDesignCreateApi.wallRuns} — the
10
+ * same inputs as {@linkcode PluginDesignCreateApi.walls}, one run per item.
11
+ *
12
+ * | Property | Type | Description |
13
+ * |---|---|---|
14
+ * | `profile` | {@linkcode ProfileHandle} | Ordered curve chain (wall centerlines) |
15
+ * | `height` | `number`? | Wall height (Snaptrude units, > 0; default engine default) |
16
+ * | `thickness` | `number`? | Wall thickness (Snaptrude units, > 0; default: `wallType`'s total layer thickness when given, else engine default) |
17
+ * | `wallType` | `string`? | Wall type name from `design.types.list("wall")` — layers/material/thickness defaults (default generic) |
18
+ * | `storey` | `number`? (int) | Target storey (must exist) — the run's walls are assigned + lifted to its base in the same undo entry (default: geometry-derived) |
19
+ */
20
+ export declare const PluginCreateWallRunItem: z.ZodObject<{
21
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"profile">, string>>;
22
+ height: z.ZodOptional<z.ZodNumber>;
23
+ thickness: z.ZodOptional<z.ZodNumber>;
24
+ wallType: z.ZodOptional<z.ZodString>;
25
+ storey: z.ZodOptional<z.ZodNumber>;
26
+ }, z.core.$strip>;
27
+ export type PluginCreateWallRunItem = z.infer<typeof PluginCreateWallRunItem>;
28
+ /** The `items` array of {@linkcode PluginDesignCreateApi.wallRuns} (1…1000). */
29
+ export declare const PluginCreateWallRunItems: z.ZodArray<z.ZodObject<{
30
+ profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"profile">, string>>;
31
+ height: z.ZodOptional<z.ZodNumber>;
32
+ thickness: z.ZodOptional<z.ZodNumber>;
33
+ wallType: z.ZodOptional<z.ZodString>;
34
+ storey: z.ZodOptional<z.ZodNumber>;
35
+ }, z.core.$strip>>;
36
+ export type PluginCreateWallRunItems = z.infer<typeof PluginCreateWallRunItems>;
37
+ /**
38
+ * One floor to create via {@linkcode PluginDesignCreateApi.floors} — the same
39
+ * footprint-extrude inputs as {@linkcode PluginDesignCreateApi.floor}.
40
+ *
41
+ * | Property | Type | Description |
42
+ * |---|---|---|
43
+ * | `contour` | {@linkcode ContourHandle} | Footprint (outer profile + holes) |
44
+ * | `thickness` | `number` | Floor thickness (Snaptrude units, > 0) |
45
+ * | `position` | {@linkcode Vec3Handle}? | Offset from origin (default origin) |
46
+ */
47
+ export declare const PluginCreateFloorItem: z.ZodObject<{
48
+ contour: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"contour">, string>>;
49
+ thickness: z.ZodNumber;
50
+ position: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
51
+ }, z.core.$strip>;
52
+ export type PluginCreateFloorItem = z.infer<typeof PluginCreateFloorItem>;
53
+ /** The `items` array of {@linkcode PluginDesignCreateApi.floors} (1…1000). */
54
+ export declare const PluginCreateFloorItems: z.ZodArray<z.ZodObject<{
55
+ contour: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"contour">, string>>;
56
+ thickness: z.ZodNumber;
57
+ position: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
58
+ }, z.core.$strip>>;
59
+ export type PluginCreateFloorItems = z.infer<typeof PluginCreateFloorItems>;
60
+ /**
61
+ * One door to place via {@linkcode PluginDesignCreateApi.doors} — the same
62
+ * fields as a `"door"` {@linkcode PluginDesignCreateOpeningOptions}, so the
63
+ * size overrides singular {@linkcode PluginDesignCreateApi.door} lacks are
64
+ * available per item. `facing` is a WORLD POINT on the side of the wall the
65
+ * door opens into, not a direction. Rejects unknown fields.
66
+ *
67
+ * | Property | Type | Description |
68
+ * |---|---|---|
69
+ * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
70
+ * | `hostWall` | {@linkcode ComponentHandle} | The wall to host the door |
71
+ * | `position` | {@linkcode Vec3Handle} | World point projected onto the wall |
72
+ * | `facing` | {@linkcode Vec3Handle}? | World point on the side the door faces (default engine-chosen) |
73
+ * | `label` | `string`? | Instance name (optional) |
74
+ * | `width` | `number`? | Width override (Snaptrude units, > 0; default the catalog item's) |
75
+ * | `height` | `number`? | Height override (Snaptrude units, > 0; default the catalog item's) |
76
+ */
77
+ export declare const PluginCreateDoorItem: z.ZodObject<{
78
+ catalogId: z.ZodString;
79
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").ComponentHandle, string>>;
80
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
81
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
82
+ label: z.ZodOptional<z.ZodString>;
83
+ width: z.ZodOptional<z.ZodNumber>;
84
+ height: z.ZodOptional<z.ZodNumber>;
85
+ }, z.core.$strict>;
86
+ export type PluginCreateDoorItem = z.infer<typeof PluginCreateDoorItem>;
87
+ /** The `items` array of {@linkcode PluginDesignCreateApi.doors} (1…1000). */
88
+ export declare const PluginCreateDoorItems: z.ZodArray<z.ZodObject<{
89
+ catalogId: z.ZodString;
90
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").ComponentHandle, string>>;
91
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
92
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
93
+ label: z.ZodOptional<z.ZodString>;
94
+ width: z.ZodOptional<z.ZodNumber>;
95
+ height: z.ZodOptional<z.ZodNumber>;
96
+ }, z.core.$strict>>;
97
+ export type PluginCreateDoorItems = z.infer<typeof PluginCreateDoorItems>;
98
+ /**
99
+ * One window to place via {@linkcode PluginDesignCreateApi.windows} — the same
100
+ * fields as a `"window"` {@linkcode PluginDesignCreateOpeningOptions}.
101
+ * `sillHeight` is a nonnegative Snaptrude-unit distance from the host wall's
102
+ * base to the BOTTOM of the window, not to its center. `facing` is a WORLD
103
+ * POINT on the desired side of the wall, not a direction. Rejects unknown
104
+ * fields.
105
+ *
106
+ * | Property | Type | Description |
107
+ * |---|---|---|
108
+ * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
109
+ * | `hostWall` | {@linkcode ComponentHandle} | The wall to host the window |
110
+ * | `position` | {@linkcode Vec3Handle} | World point projected onto the wall |
111
+ * | `facing` | {@linkcode Vec3Handle}? | World point on the side the window faces (default engine-chosen) |
112
+ * | `label` | `string`? | Instance name (optional) |
113
+ * | `width` | `number`? | Width override (Snaptrude units, > 0; default the catalog item's) |
114
+ * | `height` | `number`? | Height override (Snaptrude units, > 0; default the catalog item's) |
115
+ * | `sillHeight` | `number`? | Wall base to window bottom (Snaptrude units, ≥ 0; default the catalog item's) |
116
+ */
117
+ export declare const PluginCreateWindowItem: z.ZodObject<{
118
+ sillHeight: z.ZodOptional<z.ZodNumber>;
119
+ catalogId: z.ZodString;
120
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").ComponentHandle, string>>;
121
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
122
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
123
+ label: z.ZodOptional<z.ZodString>;
124
+ width: z.ZodOptional<z.ZodNumber>;
125
+ height: z.ZodOptional<z.ZodNumber>;
126
+ }, z.core.$strict>;
127
+ export type PluginCreateWindowItem = z.infer<typeof PluginCreateWindowItem>;
128
+ /** The `items` array of {@linkcode PluginDesignCreateApi.windows} (1…1000). */
129
+ export declare const PluginCreateWindowItems: z.ZodArray<z.ZodObject<{
130
+ sillHeight: z.ZodOptional<z.ZodNumber>;
131
+ catalogId: z.ZodString;
132
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").ComponentHandle, string>>;
133
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
134
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
135
+ label: z.ZodOptional<z.ZodString>;
136
+ width: z.ZodOptional<z.ZodNumber>;
137
+ height: z.ZodOptional<z.ZodNumber>;
138
+ }, z.core.$strict>>;
139
+ export type PluginCreateWindowItems = z.infer<typeof PluginCreateWindowItems>;
140
+ /**
141
+ * One furniture instance to place via
142
+ * {@linkcode PluginDesignCreateApi.furnitureItems} — the same inputs as
143
+ * {@linkcode PluginDesignCreateApi.furniture} minus `createNewSourceMesh`: in a
144
+ * batch the host owns source-mesh persistence (a source is recorded once per
145
+ * call, however many items reuse it).
146
+ *
147
+ * `position.y` is the REST elevation: the item is grounded so its bounding-box
148
+ * base sits exactly at `position.y` (the same surface-flush contract as
149
+ * interactive drag-drop) — pass the floor/storey elevation to stand furniture
150
+ * on it; never add half the item's height yourself.
151
+ *
152
+ * | Property | Type | Description |
153
+ * |---|---|---|
154
+ * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
155
+ * | `position` | {@linkcode Vec3Handle} | Absolute world placement point (`y` = rest elevation) |
156
+ * | `label` | `string`? | Instance name and readable label (default auto `${name}Ins${n}`) |
157
+ * | `angleInDegrees` | `number`? | Rotation about the vertical axis, in degrees (default unrotated) |
158
+ */
159
+ export declare const PluginCreateFurnitureItem: z.ZodObject<{
160
+ catalogId: z.ZodString;
161
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
162
+ label: z.ZodOptional<z.ZodString>;
163
+ angleInDegrees: z.ZodOptional<z.ZodNumber>;
164
+ }, z.core.$strip>;
165
+ export type PluginCreateFurnitureItem = z.infer<typeof PluginCreateFurnitureItem>;
166
+ /**
167
+ * The `items` array of {@linkcode PluginDesignCreateApi.furnitureItems}
168
+ * (1…1000).
169
+ */
170
+ export declare const PluginCreateFurnitureItems: z.ZodArray<z.ZodObject<{
171
+ catalogId: z.ZodString;
172
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
173
+ label: z.ZodOptional<z.ZodString>;
174
+ angleInDegrees: z.ZodOptional<z.ZodNumber>;
175
+ }, z.core.$strip>>;
176
+ export type PluginCreateFurnitureItems = z.infer<typeof PluginCreateFurnitureItems>;
177
+ //# sourceMappingURL=bulk-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-items.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/bulk-items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAIxB;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAA;AAM7C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB;;;;;;iBAMlC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,gFAAgF;AAChF,eAAO,MAAM,wBAAwB;;;;;;kBAGJ,CAAA;AACjC,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAM/E;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB;;;;kBAGF,CAAA;AACjC,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAM3E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;kBAEtB,CAAA;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB;;;;;;;;mBAGD,CAAA;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;kBAKxB,CAAA;AACX,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB;;;;;;;;;mBAGH,CAAA;AACjC,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAM7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,yBAAyB;;;;;iBAKpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,yBAAyB,CACjC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;kBAGN,CAAA;AACjC,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,0BAA0B,CAClC,CAAA"}
@@ -3,11 +3,13 @@ import { PluginApiReturn } from "../../../types";
3
3
  import { BrepHandle, ComponentHandle, ContourHandle, ProfileHandle, Vec3Handle } from "../../../handles";
4
4
  import { PluginSpaceType, PluginMassType, PluginDepartmentId } from "../../entity/space";
5
5
  import { PluginBuildableEnvelopePolygonVertex, PluginBuildableEnvelopeSetbackTier, PluginBuildableEnvelopeVerticalCap, PluginBuildableEnvelopeCreateResult } from "../../entity/buildableEnvelope";
6
+ import type { PluginCreateDoorItem, PluginCreateFloorItem, PluginCreateFurnitureItem, PluginCreateWallRunItem, PluginCreateWindowItem } from "./bulk-items";
6
7
  /**
7
8
  * `design.create.*` — author new scene-committed BIM entities.
8
9
  *
9
10
  * Every creator takes geometry handles + scalars and returns a
10
- * {@linkcode ComponentHandle} (or `ComponentHandle[]` for plural creators) — the
11
+ * {@linkcode ComponentHandle} (or `ComponentHandle[]` for plural creators;
12
+ * `wallRuns` returns one `ComponentHandle[]` per run) — the
11
13
  * `Component.id` of the created entity, resolvable across the rest of the
12
14
  * `design.*` surface. Creation is an undoable host call; it **throws** on failure
13
15
  * (no `Result` wrapper — consistent with `core.geom.create.*`).
@@ -190,8 +192,49 @@ export declare abstract class PluginDesignCreateApi {
190
192
  * const contour = await snaptrude.core.geom.create.contourFromProfile(rect)
191
193
  * const floor = await snaptrude.design.create.floor(contour, 0.1)
192
194
  * ```
195
+ *
196
+ * @performance For MORE THAN ONE floor, call `design.create.floors(items[])` — one
197
+ * host round-trip and ONE undo entry for the whole batch. Looping this single-floor
198
+ * creator is N round-trips and N undo entries.
193
199
  */
194
200
  abstract floor(contour: ContourHandle, thickness: number, position?: Vec3Handle): PluginApiReturn<ComponentHandle>;
201
+ /**
202
+ * Create **many floors** in one undoable operation (bulk plural of
203
+ * {@linkcode floor}). Each item extrudes its own footprint contour (outer
204
+ * profile + holes) upward by its own `thickness`, at its own optional
205
+ * position offset. Validate-all-or-throw; one command.
206
+ *
207
+ * @param items - One {@linkcode PluginCreateFloorItem} per floor to create
208
+ * (≥1, ≤1000)
209
+ * @returns the created floors as {@linkcode ComponentHandle}`[]`, in input order
210
+ * @throws `VALIDATION` if the items fail the schema (empty array, more than
211
+ * 1000 items, a non-positive thickness) or a contour is degenerate;
212
+ * `HANDLE_INVALID` if a `contour` or `position` handle is unknown or
213
+ * released; `OPERATION_FAILED` if extrusion fails (nothing is created —
214
+ * `details.itemIndex` is the failing item); `METHOD_NOT_PERMITTED` if the
215
+ * plugin may not write.
216
+ *
217
+ * @examplePrompt Create floors for all these room outlines at once
218
+ * @examplePrompt Add a floor to every space in one operation
219
+ * @examplePrompt Bulk create the floor plates for this building
220
+ * @examplePrompt Lay 100mm floors across these five footprints in one undo step
221
+ * @examplePrompt Create the ground and first floor slabs together
222
+ *
223
+ * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
224
+ * entry. Always prefer this over calling `design.create.floor` in a loop: build the
225
+ * full `items[]` array first (all contours and offsets up front), then make one call.
226
+ *
227
+ * # Example
228
+ * ```ts
229
+ * const rect = await snaptrude.core.geom.create.profileRect(5, 4)
230
+ * const contour = await snaptrude.core.geom.create.contourFromProfile(rect)
231
+ * const [ground, upper] = await snaptrude.design.create.floors([
232
+ * { contour, thickness: 0.1 },
233
+ * { contour, thickness: 0.1, position: await snaptrude.core.math.vec3.new(0, 3, 0) },
234
+ * ])
235
+ * ```
236
+ */
237
+ abstract floors(items: PluginCreateFloorItem[]): PluginApiReturn<ComponentHandle[]>;
195
238
  /**
196
239
  * Create a **roof** by extruding a footprint contour by `thickness`. Created
197
240
  * flat (extruded downward); pitch/slope is a separate post-creation edit.
@@ -353,8 +396,63 @@ export declare abstract class PluginDesignCreateApi {
353
396
  * centerlines, 3, undefined, brick.label,
354
397
  * )
355
398
  * ```
399
+ *
400
+ * @performance For MORE THAN ONE run, call `design.create.wallRuns(items[])` — one
401
+ * host round-trip and ONE undo entry for every run in the batch. Looping this
402
+ * single-run creator is N round-trips and N undo entries.
356
403
  */
357
404
  abstract walls(profile: ProfileHandle, height?: number, thickness?: number, wallType?: string, storey?: number): PluginApiReturn<ComponentHandle[]>;
405
+ /**
406
+ * Create **many wall runs** in one undoable operation (bulk plural of
407
+ * {@linkcode walls}). Each item is one full run — a wall per curve in that
408
+ * item's profile chain, mitred at shared endpoints. Junctions resolve within a
409
+ * run, not between runs. Each item carries its own
410
+ * dimensions, `wallType` and `storey`, so a single call can build a whole
411
+ * floor plate or several storeys at once. Validate-all-or-throw; one command.
412
+ *
413
+ * @param items - One {@linkcode PluginCreateWallRunItem} per run to create
414
+ * (≥1, ≤1000)
415
+ * @returns one {@linkcode ComponentHandle}`[]` per item, in input order —
416
+ * each inner array holding that run's walls in profile-curve order
417
+ * @throws `VALIDATION` if the items fail the schema (empty array, more than
418
+ * 1000 items, a non-positive height or thickness, a zero-length curve);
419
+ * `HANDLE_INVALID` if a `profile` handle is unknown or released;
420
+ * `PRECONDITION_FAILED` if a profile has no curves, `wallType` names no
421
+ * wall type in the project, or `storey` does not exist;
422
+ * `OPERATION_FAILED` if wall creation fails (nothing is created —
423
+ * `details.itemIndex` is the failing item); `METHOD_NOT_PERMITTED` if the
424
+ * plugin may not write.
425
+ *
426
+ * @examplePrompt Draw all the walls of this floor plan at once
427
+ * @examplePrompt Build every room's perimeter in one operation
428
+ * @examplePrompt Bulk create wall runs from these centerlines
429
+ * @examplePrompt Create the walls for both storeys in a single undo step
430
+ * @examplePrompt Turn these polylines into 200mm brick walls together
431
+ *
432
+ * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
433
+ * entry. Always prefer this over calling `design.create.walls` in a loop: build the
434
+ * full `items[]` array first (all profiles up front), then make one call.
435
+ *
436
+ * # Example
437
+ * ```ts
438
+ * const v = snaptrude.core.math.vec3
439
+ * const ground = await snaptrude.core.geom.create.profileFromLinePoints([
440
+ * await v.new(0, 0, 0),
441
+ * await v.new(8, 0, 0),
442
+ * await v.new(8, 0, 6),
443
+ * ])
444
+ * const upper = await snaptrude.core.geom.create.profileFromLinePoints([
445
+ * await v.new(0, 0, 0),
446
+ * await v.new(8, 0, 0),
447
+ * ])
448
+ * const [groundWalls, upperWalls] = await snaptrude.design.create.wallRuns([
449
+ * { profile: ground, height: 3, thickness: 0.2 },
450
+ * { profile: upper, height: 3, storey: 2 },
451
+ * ])
452
+ * console.log(groundWalls.length, "walls on the ground floor")
453
+ * ```
454
+ */
455
+ abstract wallRuns(items: PluginCreateWallRunItem[]): PluginApiReturn<ComponentHandle[][]>;
358
456
  /**
359
457
  * Create a **staircase** from a parametric preset, placed at a point.
360
458
  *
@@ -444,15 +542,19 @@ export declare abstract class PluginDesignCreateApi {
444
542
  * `position.y` (the same surface-flush contract as interactive drag-drop) —
445
543
  * pass the floor/storey elevation to stand furniture on it; never add half
446
544
  * the item's height yourself.
447
- * @param options - Optional placement options: `label` — instance name
448
- * (default auto `${name}Ins${n}`); `createNewSourceMesh` — emit a
449
- * source-mesh creation command (default `true`)
545
+ * @param options - Optional placement options: `label` — instance name and
546
+ * readable label (`design.query.getLabel`; default auto `${name}Ins${n}`);
547
+ * `createNewSourceMesh` legacy flag, kept for compatibility. The host owns
548
+ * source-mesh persistence: a catalog source is recorded exactly once, by the
549
+ * first placement that brings it in, and this flag cannot skip that record.
450
550
  * @param angleInDegrees - Optional signed rotation about the vertical axis, in
451
551
  * degrees (same convention as {@linkcode PluginDesignTransformApi.rotate}).
452
552
  * Applied at creation time so it is part of the placement's single undo entry.
453
553
  * Default: the item's own (unrotated) orientation.
454
554
  * @returns the {@linkcode ComponentHandle} of the placed furniture instance
455
- * @throws if the catalog id is unknown, the source mesh fails to load, or placement fails
555
+ * @throws if the catalog id is unknown, the source mesh fails to load, or placement fails;
556
+ * `PRECONDITION_FAILED` (`details.engineCode: "TOOL_ACTIVE"`) while the interactive
557
+ * furniture tool is active — finish or cancel it first
456
558
  *
457
559
  * @examplePrompt Place a chair from the library at this spot
458
560
  * @examplePrompt Add a sofa from the furniture catalog to the living room
@@ -476,11 +578,58 @@ export declare abstract class PluginDesignCreateApi {
476
578
  * 90,
477
579
  * )
478
580
  * ```
581
+ *
582
+ * @performance For MORE THAN ONE item, call `design.create.furnitureItems(items[])` —
583
+ * one host round-trip and ONE undo entry, and a catalog source shared by several
584
+ * items is fetched once. Looping this single-item creator is N round-trips.
479
585
  */
480
586
  abstract furniture(catalogId: string, position: Vec3Handle, options?: {
481
587
  label?: string;
482
588
  createNewSourceMesh?: boolean;
483
589
  }, angleInDegrees?: number): PluginApiReturn<ComponentHandle>;
590
+ /**
591
+ * Place **many furniture items** in one undoable operation (bulk plural of
592
+ * {@linkcode furniture}). Each item names a catalog id and an absolute world
593
+ * position (`position.y` is the REST elevation — the same grounding contract
594
+ * as the singular creator), with optional label and rotation. A catalog
595
+ * source shared by several items is fetched and recorded once for the whole
596
+ * batch, so the host — not the caller — owns source persistence (there is no
597
+ * per-item `createNewSourceMesh`). Validate-all-or-throw; one command.
598
+ *
599
+ * @param items - One {@linkcode PluginCreateFurnitureItem} per instance to
600
+ * place (≥1, ≤1000)
601
+ * @returns the placed instances as {@linkcode ComponentHandle}`[]`, in input order
602
+ * @throws `VALIDATION` if the items fail the schema (empty array, more than
603
+ * 1000 items); `HANDLE_INVALID` if a `position` handle is unknown or
604
+ * released; `PRECONDITION_FAILED` if a catalog id is unknown, a furniture
605
+ * tool is active, or a parametric group is active (exit it first, or place
606
+ * items one at a time with `furniture`); `OPERATION_FAILED` if a source
607
+ * mesh fails to load or placement fails (nothing is created —
608
+ * `details.itemIndex` is the failing item); `METHOD_NOT_PERMITTED` if the plugin may not write.
609
+ *
610
+ * @examplePrompt Place all the desks for this office at once
611
+ * @examplePrompt Furnish every bedroom in one operation
612
+ * @examplePrompt Bulk place these chairs around the table
613
+ * @examplePrompt Add the whole furniture layout in a single undo step
614
+ * @examplePrompt Drop twenty copies of this chair at these positions
615
+ *
616
+ * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
617
+ * entry, and each distinct catalog source loads once. Always prefer this over
618
+ * calling `design.create.furniture` in a loop: build the full `items[]` array
619
+ * first (all positions and angles up front), then make one call.
620
+ *
621
+ * # Example
622
+ * ```ts
623
+ * const v = snaptrude.core.math.vec3
624
+ * const [chair] = await snaptrude.design.furniture.listCatalog()
625
+ * const placed = await snaptrude.design.create.furnitureItems([
626
+ * { catalogId: chair.id, position: await v.new(3, 0, 5), label: "Chair-01" },
627
+ * { catalogId: chair.id, position: await v.new(4, 0, 5), angleInDegrees: 90 },
628
+ * { catalogId: chair.id, position: await v.new(5, 0, 5), angleInDegrees: 180 },
629
+ * ])
630
+ * ```
631
+ */
632
+ abstract furnitureItems(items: PluginCreateFurnitureItem[]): PluginApiReturn<ComponentHandle[]>;
484
633
  /**
485
634
  * Place a **door** from the catalog into a host wall.
486
635
  *
@@ -530,10 +679,66 @@ export declare abstract class PluginDesignCreateApi {
530
679
  * await snaptrude.core.math.vec3.new(3, 0, 9),
531
680
  * )
532
681
  * ```
682
+ *
683
+ * @performance For MORE THAN ONE door, call `design.create.doors(items[])` — one host
684
+ * round-trip and ONE undo entry, with each host wall re-cut once per opening inside
685
+ * that single call. Looping this single-door creator is N round-trips.
533
686
  */
534
687
  abstract door(catalogId: string, hostWall: ComponentHandle, position: Vec3Handle, options?: {
535
688
  label?: string;
536
689
  }, facing?: Vec3Handle): PluginApiReturn<ComponentHandle>;
690
+ /**
691
+ * Place **many doors** into host walls in one undoable operation (bulk plural
692
+ * of {@linkcode door}). Each item carries its own catalog id, host wall,
693
+ * world position, and optional `facing`, `label`, `width` and `height` — the
694
+ * same fields as a `"door"` {@linkcode PluginDesignCreateOpeningOptions}.
695
+ * Validate-all-or-throw; one command.
696
+ *
697
+ * As with the singular creator, placing an opening **re-cuts its host wall**:
698
+ * the wall you passed as `hostWall` stops resolving once the call returns.
699
+ * Several items MAY name the same original wall handle in one call — the host
700
+ * chains the re-cuts internally — but after the call recover the surviving
701
+ * wall with `design.query.getHost(opening)`, never by reusing the handle you
702
+ * passed in.
703
+ *
704
+ * @param items - One {@linkcode PluginCreateDoorItem} per door to place
705
+ * (≥1, ≤1000)
706
+ * @returns the placed doors as {@linkcode ComponentHandle}`[]`, in input order
707
+ * @throws `VALIDATION` if the items fail the schema (empty array, more than
708
+ * 1000 items, unknown fields, a non-positive `width`/`height`);
709
+ * `HANDLE_INVALID` if a `position` or `facing` handle is unknown or
710
+ * released; `PRECONDITION_FAILED` if a catalog id is unknown, a `hostWall`
711
+ * is not a wall / is locked / is not in the active proposal, the projected
712
+ * point falls outside its host wall, or a door tool is active;
713
+ * `OPERATION_FAILED` if a source mesh fails to load or placement fails
714
+ * (nothing is created — `details.itemIndex` is the failing item);
715
+ * `METHOD_NOT_PERMITTED` if the plugin may not write.
716
+ *
717
+ * @examplePrompt Add doors to all of these walls at once
718
+ * @examplePrompt Place a door in every room in one operation
719
+ * @examplePrompt Bulk add the entrance doors from this schedule
720
+ * @examplePrompt Put three doors on this wall in a single undo step
721
+ * @examplePrompt Add all the doors for this floor plan together
722
+ *
723
+ * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
724
+ * entry, and each distinct catalog source loads once. Always prefer this over
725
+ * calling `design.create.door` in a loop: build the full `items[]` array first
726
+ * (all host walls and points up front), then make one call.
727
+ *
728
+ * # Example
729
+ * ```ts
730
+ * const v = snaptrude.core.math.vec3
731
+ * const [wall] = await snaptrude.design.query.listWalls({ isSelected: true })
732
+ * const [entry] = await snaptrude.design.doors.listCatalog()
733
+ * const [front, side] = await snaptrude.design.create.doors([
734
+ * { catalogId: entry.id, hostWall: wall, position: await v.new(2, 0, 5), label: "D-01" },
735
+ * { catalogId: entry.id, hostWall: wall, position: await v.new(6, 0, 5), width: 1.2 },
736
+ * ])
737
+ * // `wall` was re-cut twice and no longer resolves — ask the opening for its host:
738
+ * const currentWall = await snaptrude.design.query.getHost(front)
739
+ * ```
740
+ */
741
+ abstract doors(items: PluginCreateDoorItem[]): PluginApiReturn<ComponentHandle[]>;
537
742
  /**
538
743
  * Place a **window** from the catalog into a host wall.
539
744
  *
@@ -574,10 +779,67 @@ export declare abstract class PluginDesignCreateApi {
574
779
  * { label: "Win-01" },
575
780
  * )
576
781
  * ```
782
+ *
783
+ * @performance For MORE THAN ONE window, call `design.create.windows(items[])` — one
784
+ * host round-trip and ONE undo entry, with each host wall re-cut once per opening
785
+ * inside that single call. Looping this single-window creator is N round-trips.
577
786
  */
578
787
  abstract window(catalogId: string, hostWall: ComponentHandle, position: Vec3Handle, options?: {
579
788
  label?: string;
580
789
  }, facing?: Vec3Handle): PluginApiReturn<ComponentHandle>;
790
+ /**
791
+ * Place **many windows** into host walls in one undoable operation (bulk
792
+ * plural of {@linkcode window}). Each item carries its own catalog id, host
793
+ * wall, world position, and optional `facing`, `label`, `width`, `height` and
794
+ * `sillHeight` — the same fields as a `"window"`
795
+ * {@linkcode PluginDesignCreateOpeningOptions}. `sillHeight` is measured from
796
+ * the host wall base to the BOTTOM of the window. Validate-all-or-throw; one
797
+ * command.
798
+ *
799
+ * As with the singular creator, placing an opening **re-cuts its host wall**:
800
+ * the wall you passed as `hostWall` stops resolving once the call returns.
801
+ * Several items MAY name the same original wall handle in one call — the host
802
+ * chains the re-cuts internally — but after the call recover the surviving
803
+ * wall with `design.query.getHost(opening)`, never by reusing the handle you
804
+ * passed in.
805
+ *
806
+ * @param items - One {@linkcode PluginCreateWindowItem} per window to place
807
+ * (≥1, ≤1000)
808
+ * @returns the placed windows as {@linkcode ComponentHandle}`[]`, in input order
809
+ * @throws `VALIDATION` if the items fail the schema (empty array, more than
810
+ * 1000 items, unknown fields, a non-positive `width`/`height`, a negative
811
+ * `sillHeight`); `HANDLE_INVALID` if a `position` or `facing` handle is
812
+ * unknown or released; `PRECONDITION_FAILED` if a catalog id is unknown, a
813
+ * `hostWall` is not a wall / is locked / is not in the active proposal, the
814
+ * projected point falls outside its host wall, or a window tool is active;
815
+ * `OPERATION_FAILED` if a source mesh fails to load or placement fails
816
+ * (nothing is created — `details.itemIndex` is the failing item);
817
+ * `METHOD_NOT_PERMITTED` if the plugin may not write.
818
+ *
819
+ * @examplePrompt Add windows along this whole facade at once
820
+ * @examplePrompt Place a window in every bedroom in one operation
821
+ * @examplePrompt Bulk add the windows from this schedule
822
+ * @examplePrompt Put four windows on this wall in a single undo step
823
+ * @examplePrompt Add all the windows with a 0.9m sill height together
824
+ *
825
+ * @performance Bulk creator — the whole batch is ONE host round-trip and ONE undo
826
+ * entry, and each distinct catalog source loads once. Always prefer this over
827
+ * calling `design.create.window` in a loop: build the full `items[]` array first
828
+ * (all host walls and points up front), then make one call.
829
+ *
830
+ * # Example
831
+ * ```ts
832
+ * const v = snaptrude.core.math.vec3
833
+ * const [wall] = await snaptrude.design.query.listWalls({ isSelected: true })
834
+ * const [casement] = await snaptrude.design.windows.listCatalog()
835
+ * const placed = await snaptrude.design.create.windows([
836
+ * { catalogId: casement.id, hostWall: wall, position: await v.new(2, 0, 5), sillHeight: 0.9 },
837
+ * { catalogId: casement.id, hostWall: wall, position: await v.new(5, 0, 5), sillHeight: 0.9 },
838
+ * ])
839
+ * const currentWall = await snaptrude.design.query.getHost(placed[0])
840
+ * ```
841
+ */
842
+ abstract windows(items: PluginCreateWindowItem[]): PluginApiReturn<ComponentHandle[]>;
581
843
  /**
582
844
  * Place a catalog **door or window** into a host wall with optional size overrides.
583
845
  *
@@ -595,8 +857,9 @@ export declare abstract class PluginDesignCreateApi {
595
857
  * @examplePrompt Add a 1m wide door to this wall here
596
858
  * @examplePrompt Place a window with a 0.9m sill height on the selected wall
597
859
  *
598
- * @performance Single-opening creator — use it for one hosted opening. A plural
599
- * API is intentionally unavailable until host placement can be atomic.
860
+ * @performance Single-opening creator — use it for one hosted opening. For MORE
861
+ * THAN ONE, call `design.create.doors(items[])` / `design.create.windows(items[])`:
862
+ * the same per-item fields, one host round-trip, ONE undo entry.
600
863
  *
601
864
  * # Example
602
865
  * ```ts
@@ -1118,7 +1381,7 @@ export type PluginDesignCreateStaircaseArgs = z.infer<typeof PluginDesignCreateS
1118
1381
  * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
1119
1382
  * | `position` | {@linkcode Vec3Handle} | Absolute world placement point |
1120
1383
  * | `label` | `string`? | Instance name (default auto `${name}Ins${n}`) |
1121
- * | `createNewSourceMesh` | `boolean`? | Emit a source-mesh creation command (default `true`) |
1384
+ * | `createNewSourceMesh` | `boolean`? | Legacy, kept for compatibility; the host records a catalog source exactly once and this flag cannot skip it |
1122
1385
  * | `angleInDegrees` | `number`? | Rotation about the vertical axis, in degrees (default unrotated) |
1123
1386
  */
1124
1387
  export declare const PluginDesignCreateFurnitureArgs: z.ZodObject<{
@@ -1348,4 +1611,6 @@ export declare const PluginCreateSpaceItem: z.ZodObject<{
1348
1611
  storey: z.ZodOptional<z.ZodNumber>;
1349
1612
  }, z.core.$strip>;
1350
1613
  export type PluginCreateSpaceItem = z.infer<typeof PluginCreateSpaceItem>;
1614
+ export * from "./opening-fields";
1615
+ export * from "./bulk-items";
1351
1616
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import * as z from "zod";
2
+ import { ComponentHandle } from "../../../handles";
3
+ /**
4
+ * The shared field bag every hosted opening (door / window) carries — used by
5
+ * {@linkcode PluginDesignCreateOpeningOptions} and by the bulk item schemas in
6
+ * `bulk-items.ts`, so singular and plural openings validate identically.
7
+ *
8
+ * `facing` is a WORLD POINT on the desired side of the wall, not a direction.
9
+ *
10
+ * | Property | Type | Description |
11
+ * |---|---|---|
12
+ * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
13
+ * | `hostWall` | {@linkcode ComponentHandle} | The wall to host the opening |
14
+ * | `position` | {@linkcode Vec3Handle} | World point projected onto the wall |
15
+ * | `facing` | {@linkcode Vec3Handle}? | World point on the side of the wall the opening faces (default engine-chosen) |
16
+ * | `label` | `string`? | Instance name (optional) |
17
+ * | `width` | `number`? | Width override (Snaptrude units, > 0; default the catalog item's) |
18
+ * | `height` | `number`? | Height override (Snaptrude units, > 0; default the catalog item's) |
19
+ */
20
+ export declare const PluginOpeningBaseOptions: {
21
+ catalogId: z.ZodString;
22
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
23
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
24
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
25
+ label: z.ZodOptional<z.ZodString>;
26
+ width: z.ZodOptional<z.ZodNumber>;
27
+ height: z.ZodOptional<z.ZodNumber>;
28
+ };
29
+ //# sourceMappingURL=opening-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opening-fields.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/opening-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAc,MAAM,kBAAkB,CAAA;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;CAQpC,CAAA"}
@@ -36,6 +36,10 @@ export declare abstract class PluginDesignDeleteApi {
36
36
  * children are removed and linked-list neighbours are fixed up — not caller-tunable
37
37
  * in v1. Undoable — commits as a **single** undo entry.
38
38
  *
39
+ * Dimension lines anchored to a deleted entity are removed with it, in the same undo
40
+ * entry, exactly as the editor's Delete key does — see `design.dimensions`. They are
41
+ * NOT listed in `affected`, which reports component handles only.
42
+ *
39
43
  * @param components - Entities to delete. Unknown/forged handles reject the whole call (fail-fast).
40
44
  * @returns The entities that were deleted, as {@linkcode ComponentHandle}`[]`
41
45
  * (echoed host-side from the resolved+deleted set — the engine returns no ids).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/delete/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB;;IAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;aACa,QAAQ,CACtB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;CAC7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/delete/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB;;IAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;aACa,QAAQ,CACtB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;CAC7C"}