@snaptrude/plugin-core 0.0.0-dev-20260908074328 → 0.0.0-dev-20260911064951

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 (55) hide show
  1. package/CHANGELOG.md +18 -16
  2. package/dist/api/core/io/import/index.d.ts +3 -1
  3. package/dist/api/core/io/import/index.d.ts.map +1 -1
  4. package/dist/api/design/create/bulk-items.d.ts +185 -0
  5. package/dist/api/design/create/bulk-items.d.ts.map +1 -0
  6. package/dist/api/design/create/index.d.ts +315 -50
  7. package/dist/api/design/create/index.d.ts.map +1 -1
  8. package/dist/api/design/create/opening-fields.d.ts +37 -0
  9. package/dist/api/design/create/opening-fields.d.ts.map +1 -0
  10. package/dist/api/design/delete/index.d.ts +6 -20
  11. package/dist/api/design/delete/index.d.ts.map +1 -1
  12. package/dist/api/design/dimensions.d.ts +427 -0
  13. package/dist/api/design/dimensions.d.ts.map +1 -0
  14. package/dist/api/design/doors/index.d.ts +20 -13
  15. package/dist/api/design/doors/index.d.ts.map +1 -1
  16. package/dist/api/design/index.d.ts +5 -0
  17. package/dist/api/design/index.d.ts.map +1 -1
  18. package/dist/api/design/query/index.d.ts +0 -2
  19. package/dist/api/design/query/index.d.ts.map +1 -1
  20. package/dist/api/design/query/spaces.d.ts +0 -61
  21. package/dist/api/design/query/spaces.d.ts.map +1 -1
  22. package/dist/api/entity/space.d.ts +0 -3
  23. package/dist/api/entity/space.d.ts.map +1 -1
  24. package/dist/api/presentation/annotate.d.ts +2 -2
  25. package/dist/api/presentation/placedViews.d.ts +1 -35
  26. package/dist/api/presentation/placedViews.d.ts.map +1 -1
  27. package/dist/api/presentation/shapes.d.ts +2 -2
  28. package/dist/api/presentation/sheets.d.ts +2 -20
  29. package/dist/api/presentation/sheets.d.ts.map +1 -1
  30. package/dist/errors/codes.d.ts +3 -8
  31. package/dist/errors/codes.d.ts.map +1 -1
  32. package/dist/handles.d.ts +19 -0
  33. package/dist/handles.d.ts.map +1 -1
  34. package/dist/index.cjs +2031 -1940
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.js +2008 -1935
  37. package/dist/index.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/api/core/io/import/index.ts +11 -3
  40. package/src/api/design/create/bulk-items.ts +186 -0
  41. package/src/api/design/create/index.ts +341 -70
  42. package/src/api/design/create/opening-fields.ts +37 -0
  43. package/src/api/design/delete/index.ts +5 -20
  44. package/src/api/design/dimensions.ts +453 -0
  45. package/src/api/design/doors/index.ts +20 -13
  46. package/src/api/design/index.ts +5 -0
  47. package/src/api/design/query/index.ts +0 -2
  48. package/src/api/design/query/spaces.ts +0 -68
  49. package/src/api/entity/space.ts +0 -2
  50. package/src/api/presentation/placedViews.ts +1 -29
  51. package/src/api/presentation/sheets.ts +3 -19
  52. package/src/errors/codes.ts +2 -30
  53. package/src/handles.ts +24 -0
  54. package/test/errors.test.mjs +0 -4
  55. package/snaptrude-plugin-core-0.11.0.tgz +0 -0
package/CHANGELOG.md CHANGED
@@ -1,27 +1,29 @@
1
1
  # @snaptrude/plugin-core
2
2
 
3
- ## 0.0.0-dev-20260908074328
3
+ ## 0.0.0-dev-20260911064951
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - a22e813: added param comps
7
+ - 6e4a055: added param comps
8
+ - 7fd374e: Add `hinge` to `design.create.door` / `window` (in `options`), `doors[]` / `windows[]` items and `opening`: a world point near the jamb the leaf is hinged on; the placed item is reflected along the wall when the catalog item's authored hinge side would land on the other jamb — one undo entry, no extra command.
8
9
 
9
- ## 0.11.0
10
+ **BEHAVIOUR FIX — `facing`.** The host placed the swing on the side OPPOSITE the `facing` point (the interactive tool's cursor convention) while the contract said "the room it opens into". The host now matches the contract: the leaf swings open toward `facing`. Callers that passed a point on the room side get the documented result; nothing in the contract changed shape.
10
11
 
11
- ### Minor Changes
12
+ `design.doors.getSwingDirection` is now derived from the placed mesh's orientation (hand as seen standing on the swing side facing the door); it previously read a scaling sign that placement never sets and reported `"left"` for every door. `mirror` axis docs now say what each axis does to a door (`'x'` swing side, `'z'` hinged jamb, `'y'` upside down); behaviour unchanged.
13
+
14
+ ## 0.9.7
15
+
16
+ ### Patch Changes
17
+
18
+ - 6e60c61: Add bulk `design.create` creators — `wallRuns`, `floors`, `doors`, `windows`, `furnitureItems`: one host round-trip and one undo entry per batch.
19
+
20
+ Singular creators, fixes shipped alongside (behaviour changes for existing callers):
21
+ - `floor`, `slab`, `roof`, `ceiling`, `column`, `beam`: contour holes are now cut (holed contours previously failed or lost their holes).
22
+ - `floor`: the `position` offset is applied before the creation snapshot, so it survives redo and reload and drives storey assignment.
23
+ - `furniture`: `options.label` is now also the readable label (`design.query.getLabel`); `createNewSourceMesh` can no longer skip recording a source this call brought in (the host owns source persistence, recorded exactly once across concurrent calls); refuses with `PRECONDITION_FAILED` (`engineCode: "TOOL_ACTIVE"`) while the interactive furniture tool is active. The same refusal applies to `core.io.import.model` furniture placement.
24
+ - `door`, `window`: published as one save document instead of five; undo granularity unchanged.
12
25
 
13
- - **BREAKING `design.create.floor` returns `ComponentHandle[]`** (was a single handle): the engine may split the footprint into several floors or merge it into a pre-existing neighbour; the call returns every floor covering the requested footprint after parametric resolution (created and/or absorbing; `[floor]` for a simple create). Destructure the first element for the previous single-floor behavior.
14
-
15
- - 13c1fb5: Plugin API 0.11.0 — additive types for the ParametricGraphsV2 (PG2) remediation. Strictly additive: no existing signature or result shape changes; deployed plugins are unaffected.
16
- - **`design.query.getProperties` — `isVisible`**: new optional read-only property — whether the entity currently has a visible representation on canvas (user hide flag AND LOD/mode gating both considered). Read-only: it is deliberately NOT a `PluginEntityFilter` field.
17
- - **Error codes — four appended**: `HANDLE_STALE` (a handle the caller legitimately held that a parametric resolution — merge/split/rebuild — has since retired; the one deliberate exception to the `HANDLE_INVALID` collapse, which forged/never-issued ids still get), `KIND_HIDDEN_IN_MODE` (the entity kind has no representation in the current mode/LOD), `MERGED_INTO_EXISTING` (created geometry merged into an existing entity — use the surviving handles), `BLOCKED_IN_BIM` (operation unavailable in BIM mode). Wrong-kind targets deliberately did NOT get a new code — the existing `HANDLE_KIND_MISMATCH` already covers them.
18
- - **`design.delete.entities` — cascade report**: now returns `PluginDesignDeleteResult` — the shared change-result shape plus an optional `cascaded` `ComponentHandle[]`: components PG2 removed as a consequence (derived walls/floors/slabs of deleted spaces), returned for cache invalidation. The shared `PluginDesignChangeResult` used by lock/selection/visibility is unchanged.
19
- - **`design.create.furniture` placement is grounded**: `position.y` = bounding-box bottom, always; origin-relative placement removed (plugins recompute during the fleet upgrade).
20
- - **`design.create.walls` honors the engine's resolution**: touching curves may merge/split against existing walls; returns the actually-created set (count may differ from input curves). The 1:1-per-curve abort is removed; no `strict` flag.
21
- - **`design.update.space` / `.spaces` — `rebuilt`**: `PluginSpaceUpdateResult` gains an optional `rebuilt` boolean — a geometry update rebuilt the space's derived BIM (hosted children re-created, previous derived handles retired).
22
- - **`design.query.spaces.listGeneratedBim(space)`**: new read — the space's engine-derived BIM component handles as `{ walls, floors, slabs }` (`PluginSpaceGeneratedBim`). The set changes on merge/split — re-query after writes; this is the churn-recovery anchor for stale derived handles.
23
- - **`presentation.placedViews`**: the placed-view record gains optional `lod` (`PluginViewLod`: `"design" | "bim"`) and `inactiveBuildingMask` fields; new `setLod(shapeId, lod)` sets the level of detail a placed view renders at.
24
- - **`presentation.sheets.place` — `options.lod`**: optional `PluginViewLod` — the LOD of the placed view (default: the product's Design default).
26
+ - 2f10e6b: Add `design.dimensions` dimension lines (Measuring Tape): `create`, `list`, `get`, `delete`, `hide`, `show`, plus the new `DimensionHandle`.
25
27
 
26
28
  ## 0.9.6
27
29
 
@@ -209,7 +209,9 @@ export declare abstract class PluginCoreIoImportApi {
209
209
  * @returns the placed {@linkcode ComponentHandle}.
210
210
  * @throws if writes are disabled, the source can't be loaded, the format is
211
211
  * unsupported, conversion/placement fails, or the converted model cannot be
212
- * found in the library after upload.
212
+ * found in the library after upload; `PRECONDITION_FAILED`
213
+ * (`details.engineCode: "TOOL_ACTIVE"`) while the interactive furniture tool is
214
+ * active — finish or cancel it first.
213
215
  *
214
216
  * @examplePrompt Import this SketchUp model onto storey 1
215
217
  * @examplePrompt Bring in this OBJ file and place it at the origin
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/io/import/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/io/import/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
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` and `hinge` are WORLD POINTS, not directions:
65
+ * `facing` on the side of the wall the door swings open to, `hinge` near the
66
+ * jamb it is hinged on. Rejects unknown fields.
67
+ *
68
+ * | Property | Type | Description |
69
+ * |---|---|---|
70
+ * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
71
+ * | `hostWall` | {@linkcode ComponentHandle} | The wall to host the door |
72
+ * | `position` | {@linkcode Vec3Handle} | World point projected onto the wall |
73
+ * | `facing` | {@linkcode Vec3Handle}? | World point on the side the door swings open to (default engine-chosen) |
74
+ * | `hinge` | {@linkcode Vec3Handle}? | World point near the jamb the door is hinged on (default the catalog item's authored side) |
75
+ * | `label` | `string`? | Instance name (optional) |
76
+ * | `width` | `number`? | Width override (Snaptrude units, > 0; default the catalog item's) |
77
+ * | `height` | `number`? | Height override (Snaptrude units, > 0; default the catalog item's) |
78
+ */
79
+ export declare const PluginCreateDoorItem: z.ZodObject<{
80
+ catalogId: z.ZodString;
81
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").ComponentHandle, string>>;
82
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
83
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
84
+ hinge: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
85
+ label: z.ZodOptional<z.ZodString>;
86
+ width: z.ZodOptional<z.ZodNumber>;
87
+ height: z.ZodOptional<z.ZodNumber>;
88
+ }, z.core.$strict>;
89
+ export type PluginCreateDoorItem = z.infer<typeof PluginCreateDoorItem>;
90
+ /** The `items` array of {@linkcode PluginDesignCreateApi.doors} (1…1000). */
91
+ export declare const PluginCreateDoorItems: z.ZodArray<z.ZodObject<{
92
+ catalogId: z.ZodString;
93
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").ComponentHandle, string>>;
94
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
95
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
96
+ hinge: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
97
+ label: z.ZodOptional<z.ZodString>;
98
+ width: z.ZodOptional<z.ZodNumber>;
99
+ height: z.ZodOptional<z.ZodNumber>;
100
+ }, z.core.$strict>>;
101
+ export type PluginCreateDoorItems = z.infer<typeof PluginCreateDoorItems>;
102
+ /**
103
+ * One window to place via {@linkcode PluginDesignCreateApi.windows} — the same
104
+ * fields as a `"window"` {@linkcode PluginDesignCreateOpeningOptions}.
105
+ * `sillHeight` is a nonnegative Snaptrude-unit distance from the host wall's
106
+ * base to the BOTTOM of the window, not to its center. `facing` and `hinge`
107
+ * are WORLD POINTS, not directions: `facing` on the side of the wall the
108
+ * window opens to, `hinge` near the jamb it is hinged on. Rejects unknown
109
+ * fields.
110
+ *
111
+ * | Property | Type | Description |
112
+ * |---|---|---|
113
+ * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
114
+ * | `hostWall` | {@linkcode ComponentHandle} | The wall to host the window |
115
+ * | `position` | {@linkcode Vec3Handle} | World point projected onto the wall |
116
+ * | `facing` | {@linkcode Vec3Handle}? | World point on the side the window opens to (default engine-chosen) |
117
+ * | `hinge` | {@linkcode Vec3Handle}? | World point near the jamb the window is hinged on (default the catalog item's authored side) |
118
+ * | `label` | `string`? | Instance name (optional) |
119
+ * | `width` | `number`? | Width override (Snaptrude units, > 0; default the catalog item's) |
120
+ * | `height` | `number`? | Height override (Snaptrude units, > 0; default the catalog item's) |
121
+ * | `sillHeight` | `number`? | Wall base to window bottom (Snaptrude units, ≥ 0; default the catalog item's) |
122
+ */
123
+ export declare const PluginCreateWindowItem: z.ZodObject<{
124
+ sillHeight: z.ZodOptional<z.ZodNumber>;
125
+ catalogId: z.ZodString;
126
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").ComponentHandle, string>>;
127
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
128
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
129
+ hinge: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
130
+ label: z.ZodOptional<z.ZodString>;
131
+ width: z.ZodOptional<z.ZodNumber>;
132
+ height: z.ZodOptional<z.ZodNumber>;
133
+ }, z.core.$strict>;
134
+ export type PluginCreateWindowItem = z.infer<typeof PluginCreateWindowItem>;
135
+ /** The `items` array of {@linkcode PluginDesignCreateApi.windows} (1…1000). */
136
+ export declare const PluginCreateWindowItems: z.ZodArray<z.ZodObject<{
137
+ sillHeight: z.ZodOptional<z.ZodNumber>;
138
+ catalogId: z.ZodString;
139
+ hostWall: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").ComponentHandle, string>>;
140
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
141
+ facing: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
142
+ hinge: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
143
+ label: z.ZodOptional<z.ZodString>;
144
+ width: z.ZodOptional<z.ZodNumber>;
145
+ height: z.ZodOptional<z.ZodNumber>;
146
+ }, z.core.$strict>>;
147
+ export type PluginCreateWindowItems = z.infer<typeof PluginCreateWindowItems>;
148
+ /**
149
+ * One furniture instance to place via
150
+ * {@linkcode PluginDesignCreateApi.furnitureItems} — the same inputs as
151
+ * {@linkcode PluginDesignCreateApi.furniture} minus `createNewSourceMesh`: in a
152
+ * batch the host owns source-mesh persistence (a source is recorded once per
153
+ * call, however many items reuse it).
154
+ *
155
+ * `position.y` is the REST elevation: the item is grounded so its bounding-box
156
+ * base sits exactly at `position.y` (the same surface-flush contract as
157
+ * interactive drag-drop) — pass the floor/storey elevation to stand furniture
158
+ * on it; never add half the item's height yourself.
159
+ *
160
+ * | Property | Type | Description |
161
+ * |---|---|---|
162
+ * | `catalogId` | `string` | Library id: team `_id` or general `fullName` |
163
+ * | `position` | {@linkcode Vec3Handle} | Absolute world placement point (`y` = rest elevation) |
164
+ * | `label` | `string`? | Instance name and readable label (default auto `${name}Ins${n}`) |
165
+ * | `angleInDegrees` | `number`? | Rotation about the vertical axis, in degrees (default unrotated) |
166
+ */
167
+ export declare const PluginCreateFurnitureItem: z.ZodObject<{
168
+ catalogId: z.ZodString;
169
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
170
+ label: z.ZodOptional<z.ZodString>;
171
+ angleInDegrees: z.ZodOptional<z.ZodNumber>;
172
+ }, z.core.$strip>;
173
+ export type PluginCreateFurnitureItem = z.infer<typeof PluginCreateFurnitureItem>;
174
+ /**
175
+ * The `items` array of {@linkcode PluginDesignCreateApi.furnitureItems}
176
+ * (1…1000).
177
+ */
178
+ export declare const PluginCreateFurnitureItems: z.ZodArray<z.ZodObject<{
179
+ catalogId: z.ZodString;
180
+ position: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
181
+ label: z.ZodOptional<z.ZodString>;
182
+ angleInDegrees: z.ZodOptional<z.ZodNumber>;
183
+ }, z.core.$strip>>;
184
+ export type PluginCreateFurnitureItems = z.infer<typeof PluginCreateFurnitureItems>;
185
+ //# 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;;;;;;;;;;;;;;;;;;GAkBG;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;;;;;;;;;;;;;;;;;;;;GAoBG;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"}