@snaptrude/plugin-core 0.0.0-dev-20260708130115 → 0.0.0-dev-20260827194031

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 (261) hide show
  1. package/CHANGELOG.md +152 -1
  2. package/api-manifest.json +3643 -276
  3. package/dist/api/analysis/daylight.d.ts +603 -0
  4. package/dist/api/analysis/daylight.d.ts.map +1 -0
  5. package/dist/api/analysis/heatmaps.d.ts +658 -0
  6. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  7. package/dist/api/analysis/illuminance.d.ts +145 -0
  8. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  9. package/dist/api/analysis/index.d.ts +59 -0
  10. package/dist/api/analysis/index.d.ts.map +1 -0
  11. package/dist/api/analysis/shadows.d.ts +165 -0
  12. package/dist/api/analysis/shadows.d.ts.map +1 -0
  13. package/dist/api/analysis/solar.d.ts +249 -0
  14. package/dist/api/analysis/solar.d.ts.map +1 -0
  15. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  16. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  17. package/dist/api/analysis/sunpath.d.ts +80 -0
  18. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  19. package/dist/api/analysis/weather.d.ts +193 -0
  20. package/dist/api/analysis/weather.d.ts.map +1 -0
  21. package/dist/api/core/camera/index.d.ts +261 -0
  22. package/dist/api/core/camera/index.d.ts.map +1 -0
  23. package/dist/api/core/comment/index.d.ts +105 -2
  24. package/dist/api/core/comment/index.d.ts.map +1 -1
  25. package/dist/api/core/geom/create/index.d.ts +840 -14
  26. package/dist/api/core/geom/create/index.d.ts.map +1 -1
  27. package/dist/api/core/geom/delete/index.d.ts +8 -2
  28. package/dist/api/core/geom/delete/index.d.ts.map +1 -1
  29. package/dist/api/core/geom/query/arc.d.ts +5 -5
  30. package/dist/api/core/geom/query/brep.d.ts +130 -18
  31. package/dist/api/core/geom/query/brep.d.ts.map +1 -1
  32. package/dist/api/core/geom/query/circle.d.ts +18 -18
  33. package/dist/api/core/geom/query/contour.d.ts +20 -20
  34. package/dist/api/core/geom/query/curve.d.ts +49 -49
  35. package/dist/api/core/geom/query/edge.d.ts +5 -5
  36. package/dist/api/core/geom/query/face.d.ts +16 -16
  37. package/dist/api/core/geom/query/halfedge.d.ts +8 -8
  38. package/dist/api/core/geom/query/profile.d.ts +19 -19
  39. package/dist/api/core/geom/query/vertex.d.ts +8 -8
  40. package/dist/api/core/geom/update/contour.d.ts +14 -14
  41. package/dist/api/core/geom/update/curve.d.ts +7 -7
  42. package/dist/api/core/geom/update/profile.d.ts +16 -16
  43. package/dist/api/core/handles/index.d.ts +210 -0
  44. package/dist/api/core/handles/index.d.ts.map +1 -0
  45. package/dist/api/core/index.d.ts +34 -0
  46. package/dist/api/core/index.d.ts.map +1 -1
  47. package/dist/api/core/io/export/index.d.ts +134 -0
  48. package/dist/api/core/io/export/index.d.ts.map +1 -0
  49. package/dist/api/core/io/import/index.d.ts +453 -0
  50. package/dist/api/core/io/import/index.d.ts.map +1 -0
  51. package/dist/api/core/io/index.d.ts +40 -0
  52. package/dist/api/core/io/index.d.ts.map +1 -0
  53. package/dist/api/core/io/job/index.d.ts +139 -0
  54. package/dist/api/core/io/job/index.d.ts.map +1 -0
  55. package/dist/api/core/io/query/index.d.ts +74 -0
  56. package/dist/api/core/io/query/index.d.ts.map +1 -0
  57. package/dist/api/core/io/terrain/index.d.ts +341 -0
  58. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  59. package/dist/api/core/io/underlay/index.d.ts +805 -0
  60. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  61. package/dist/api/core/layers.d.ts +7 -7
  62. package/dist/api/core/mode/index.d.ts +99 -0
  63. package/dist/api/core/mode/index.d.ts.map +1 -0
  64. package/dist/api/core/project/index.d.ts +68 -1
  65. package/dist/api/core/project/index.d.ts.map +1 -1
  66. package/dist/api/core/proposals/index.d.ts +531 -0
  67. package/dist/api/core/proposals/index.d.ts.map +1 -0
  68. package/dist/api/core/storeys/index.d.ts +265 -0
  69. package/dist/api/core/storeys/index.d.ts.map +1 -0
  70. package/dist/api/core/tags.d.ts +24 -0
  71. package/dist/api/core/tags.d.ts.map +1 -1
  72. package/dist/api/core/user.d.ts +44 -0
  73. package/dist/api/core/user.d.ts.map +1 -0
  74. package/dist/api/core/zoom/index.d.ts +4 -0
  75. package/dist/api/core/zoom/index.d.ts.map +1 -1
  76. package/dist/api/design/boolean/index.d.ts +4 -4
  77. package/dist/api/design/create/index.d.ts +568 -45
  78. package/dist/api/design/create/index.d.ts.map +1 -1
  79. package/dist/api/design/delete/index.d.ts +3 -0
  80. package/dist/api/design/delete/index.d.ts.map +1 -1
  81. package/dist/api/design/doors/index.d.ts +195 -0
  82. package/dist/api/design/doors/index.d.ts.map +1 -1
  83. package/dist/api/design/edit/index.d.ts +1 -1
  84. package/dist/api/design/erase/index.d.ts +2 -2
  85. package/dist/api/design/family.d.ts +493 -0
  86. package/dist/api/design/family.d.ts.map +1 -0
  87. package/dist/api/design/furniture/index.d.ts +181 -8
  88. package/dist/api/design/furniture/index.d.ts.map +1 -1
  89. package/dist/api/design/index.d.ts +98 -0
  90. package/dist/api/design/index.d.ts.map +1 -1
  91. package/dist/api/design/lock.d.ts +26 -0
  92. package/dist/api/design/lock.d.ts.map +1 -1
  93. package/dist/api/design/materials/index.d.ts +270 -16
  94. package/dist/api/design/materials/index.d.ts.map +1 -1
  95. package/dist/api/design/query/geometry/index.d.ts +112 -0
  96. package/dist/api/design/query/geometry/index.d.ts.map +1 -1
  97. package/dist/api/design/query/index.d.ts +289 -11
  98. package/dist/api/design/query/index.d.ts.map +1 -1
  99. package/dist/api/design/query/referenceLines.d.ts +45 -0
  100. package/dist/api/design/query/referenceLines.d.ts.map +1 -0
  101. package/dist/api/design/query/spaces.d.ts +181 -8
  102. package/dist/api/design/query/spaces.d.ts.map +1 -1
  103. package/dist/api/design/selection/index.d.ts +144 -0
  104. package/dist/api/design/selection/index.d.ts.map +1 -1
  105. package/dist/api/design/transform/index.d.ts +172 -10
  106. package/dist/api/design/transform/index.d.ts.map +1 -1
  107. package/dist/api/design/types/index.d.ts +181 -0
  108. package/dist/api/design/types/index.d.ts.map +1 -0
  109. package/dist/api/design/update/index.d.ts +553 -2
  110. package/dist/api/design/update/index.d.ts.map +1 -1
  111. package/dist/api/design/visibility.d.ts +126 -0
  112. package/dist/api/design/visibility.d.ts.map +1 -0
  113. package/dist/api/design/windows/index.d.ts +113 -2
  114. package/dist/api/design/windows/index.d.ts.map +1 -1
  115. package/dist/api/entity/buildableEnvelope.d.ts +4 -0
  116. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
  117. package/dist/api/entity/referenceLine.d.ts +10 -2
  118. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  119. package/dist/api/entity/space.d.ts +21 -21
  120. package/dist/api/entity/story.d.ts +242 -15
  121. package/dist/api/entity/story.d.ts.map +1 -1
  122. package/dist/api/index.d.ts +10 -0
  123. package/dist/api/index.d.ts.map +1 -1
  124. package/dist/api/presentation/aiInspiration.d.ts +25 -25
  125. package/dist/api/presentation/annotate.d.ts +467 -0
  126. package/dist/api/presentation/annotate.d.ts.map +1 -0
  127. package/dist/api/presentation/diagrams.d.ts +111 -8
  128. package/dist/api/presentation/diagrams.d.ts.map +1 -1
  129. package/dist/api/presentation/export.d.ts +108 -0
  130. package/dist/api/presentation/export.d.ts.map +1 -0
  131. package/dist/api/presentation/import.d.ts +55 -4
  132. package/dist/api/presentation/import.d.ts.map +1 -1
  133. package/dist/api/presentation/index.d.ts +58 -1
  134. package/dist/api/presentation/index.d.ts.map +1 -1
  135. package/dist/api/presentation/placedViews.d.ts +1139 -0
  136. package/dist/api/presentation/placedViews.d.ts.map +1 -0
  137. package/dist/api/presentation/shapes.d.ts +481 -0
  138. package/dist/api/presentation/shapes.d.ts.map +1 -0
  139. package/dist/api/presentation/sheets.d.ts +452 -13
  140. package/dist/api/presentation/sheets.d.ts.map +1 -1
  141. package/dist/api/presentation/slideshow.d.ts +125 -0
  142. package/dist/api/presentation/slideshow.d.ts.map +1 -0
  143. package/dist/api/presentation/tables.d.ts +81 -0
  144. package/dist/api/presentation/tables.d.ts.map +1 -0
  145. package/dist/api/presentation/views.d.ts +367 -7
  146. package/dist/api/presentation/views.d.ts.map +1 -1
  147. package/dist/api/program/areas.d.ts +102 -12
  148. package/dist/api/program/areas.d.ts.map +1 -1
  149. package/dist/api/program/cores.d.ts +3 -99
  150. package/dist/api/program/cores.d.ts.map +1 -1
  151. package/dist/api/program/index.d.ts +7 -15
  152. package/dist/api/program/index.d.ts.map +1 -1
  153. package/dist/api/program/layout.d.ts +346 -11
  154. package/dist/api/program/layout.d.ts.map +1 -1
  155. package/dist/api/program/site.d.ts +469 -13
  156. package/dist/api/program/site.d.ts.map +1 -1
  157. package/dist/api/program/spreadsheet.d.ts +365 -41
  158. package/dist/api/program/spreadsheet.d.ts.map +1 -1
  159. package/dist/api/workspace/index.d.ts +505 -0
  160. package/dist/api/workspace/index.d.ts.map +1 -0
  161. package/dist/errors/codes.d.ts +34 -0
  162. package/dist/errors/codes.d.ts.map +1 -0
  163. package/dist/errors/envelope.d.ts +56 -0
  164. package/dist/errors/envelope.d.ts.map +1 -0
  165. package/dist/errors/index.d.ts +6 -0
  166. package/dist/errors/index.d.ts.map +1 -0
  167. package/dist/errors/plugin-error.d.ts +69 -0
  168. package/dist/errors/plugin-error.d.ts.map +1 -0
  169. package/dist/handles.d.ts +97 -25
  170. package/dist/handles.d.ts.map +1 -1
  171. package/dist/host-utils.d.ts +4 -0
  172. package/dist/host-utils.d.ts.map +1 -1
  173. package/dist/index.cjs +4605 -1423
  174. package/dist/index.cjs.map +1 -1
  175. package/dist/index.d.ts +1 -0
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +4191 -1412
  178. package/dist/index.js.map +1 -1
  179. package/package.json +4 -2
  180. package/scripts/generate-manifest.mjs +45 -0
  181. package/scripts/generate-manifest.test.mjs +103 -4
  182. package/src/api/analysis/daylight.ts +470 -0
  183. package/src/api/analysis/heatmaps.ts +683 -0
  184. package/src/api/analysis/illuminance.ts +155 -0
  185. package/src/api/analysis/index.ts +61 -0
  186. package/src/api/analysis/shadows.ts +183 -0
  187. package/src/api/analysis/solar.ts +237 -0
  188. package/src/api/analysis/sunlightHours.ts +211 -0
  189. package/src/api/analysis/sunpath.ts +83 -0
  190. package/src/api/analysis/weather.ts +179 -0
  191. package/src/api/core/camera/index.ts +268 -0
  192. package/src/api/core/comment/index.ts +120 -2
  193. package/src/api/core/geom/create/index.ts +912 -1
  194. package/src/api/core/geom/delete/index.ts +6 -0
  195. package/src/api/core/geom/query/brep.ts +119 -0
  196. package/src/api/core/handles/index.ts +233 -0
  197. package/src/api/core/index.ts +34 -0
  198. package/src/api/core/io/export/index.ts +126 -0
  199. package/src/api/core/io/import/index.ts +496 -0
  200. package/src/api/core/io/index.ts +42 -0
  201. package/src/api/core/io/job/index.ts +140 -0
  202. package/src/api/core/io/query/index.ts +71 -0
  203. package/src/api/core/io/terrain/index.ts +360 -0
  204. package/src/api/core/io/underlay/index.ts +705 -0
  205. package/src/api/core/mode/index.ts +96 -0
  206. package/src/api/core/project/index.ts +62 -1
  207. package/src/api/core/proposals/index.ts +569 -0
  208. package/src/api/core/storeys/index.ts +294 -0
  209. package/src/api/core/tags.ts +27 -0
  210. package/src/api/core/user.ts +46 -0
  211. package/src/api/core/zoom/index.ts +4 -0
  212. package/src/api/design/create/index.ts +670 -30
  213. package/src/api/design/delete/index.ts +3 -0
  214. package/src/api/design/doors/index.ts +208 -0
  215. package/src/api/design/erase/index.ts +1 -1
  216. package/src/api/design/family.ts +544 -0
  217. package/src/api/design/furniture/index.ts +197 -8
  218. package/src/api/design/index.ts +102 -0
  219. package/src/api/design/lock.ts +27 -0
  220. package/src/api/design/materials/index.ts +334 -27
  221. package/src/api/design/query/geometry/index.ts +125 -3
  222. package/src/api/design/query/index.ts +219 -7
  223. package/src/api/design/query/referenceLines.ts +52 -0
  224. package/src/api/design/query/spaces.ts +143 -0
  225. package/src/api/design/selection/index.ts +129 -0
  226. package/src/api/design/transform/index.ts +170 -9
  227. package/src/api/design/types/index.ts +156 -0
  228. package/src/api/design/update/index.ts +631 -3
  229. package/src/api/design/visibility.ts +143 -0
  230. package/src/api/design/windows/index.ts +128 -2
  231. package/src/api/entity/buildableEnvelope.ts +4 -0
  232. package/src/api/entity/referenceLine.ts +8 -0
  233. package/src/api/entity/story.ts +259 -15
  234. package/src/api/index.ts +10 -0
  235. package/src/api/presentation/annotate.ts +385 -0
  236. package/src/api/presentation/diagrams.ts +118 -8
  237. package/src/api/presentation/export.ts +108 -0
  238. package/src/api/presentation/import.ts +51 -4
  239. package/src/api/presentation/index.ts +66 -1
  240. package/src/api/presentation/placedViews.ts +1120 -0
  241. package/src/api/presentation/shapes.ts +274 -0
  242. package/src/api/presentation/sheets.ts +400 -13
  243. package/src/api/presentation/slideshow.ts +134 -0
  244. package/src/api/presentation/tables.ts +84 -0
  245. package/src/api/presentation/views.ts +376 -8
  246. package/src/api/program/areas.ts +88 -15
  247. package/src/api/program/cores.ts +3 -91
  248. package/src/api/program/index.ts +7 -15
  249. package/src/api/program/layout.ts +365 -11
  250. package/src/api/program/site.ts +435 -13
  251. package/src/api/program/spreadsheet.ts +376 -35
  252. package/src/api/workspace/index.ts +563 -0
  253. package/src/errors/codes.ts +136 -0
  254. package/src/errors/envelope.ts +75 -0
  255. package/src/errors/index.ts +21 -0
  256. package/src/errors/plugin-error.ts +134 -0
  257. package/src/handles.ts +123 -13
  258. package/src/host-utils.ts +4 -0
  259. package/src/index.ts +1 -0
  260. package/test/errors.test.mjs +184 -0
  261. package/tsconfig.json +7 -2
@@ -1,35 +1,143 @@
1
1
  import * as z from "zod";
2
2
  import { PluginApiReturn } from "../../../types";
3
+ import { ComponentHandle } from "../../../handles";
4
+ import { PluginDesignChangeResult } from "../lock";
5
+ import { PluginObjectCatalogGroup } from "../doors";
3
6
  /**
4
7
  * `snaptrude.design.furniture` — the placeable furniture **catalog** (a library of
5
- * source items, NOT scene entities). Placement lives at `design.create.furniture`
6
- * (returns a {@linkcode ComponentHandle}); reads of placed furniture live at
7
- * `design.query.listFurniture`/`getProperties`.
8
+ * source items, NOT scene entities) plus dimension reads/edits of PLACED furniture.
9
+ * Placement lives at `design.create.furniture` (returns a {@linkcode ComponentHandle});
10
+ * generic reads of placed furniture live at `design.query.listFurniture`/`getProperties`.
8
11
  *
9
12
  * Catalog items are plain value records ({@linkcode PluginFurnitureCatalogItem}) keyed
10
13
  * by a library id (team `_id` or general `fullName`) — not handles. Reads are async
11
14
  * (network-backed) but carry no `Async` suffix (§6.6).
15
+ *
16
+ * {@linkcode PluginDesignFurnitureApi.getDimensions} / {@linkcode PluginDesignFurnitureApi.setDimensions}
17
+ * target a PLACED furniture {@linkcode ComponentHandle} (not a catalog id) — `length`
18
+ * along the object, `width` across it, `height` up. Values are engine units, matching
19
+ * the length/width/height fields the furniture properties panel shows.
12
20
  */
13
21
  export declare abstract class PluginDesignFurnitureApi {
14
22
  constructor();
15
23
  /**
16
- * List the placeable furniture catalog (team + general libraries).
24
+ * Get the dimensions of a PLACED furniture item — `length` (along the object),
25
+ * `width` (across it) and `height` (vertical), in engine units. Mirrors the
26
+ * Length/Width/Height fields of the furniture properties panel.
27
+ *
28
+ * @param item The placed furniture to query
29
+ * @returns The dimensions, or `null` if the geometry is degenerate
30
+ *
31
+ * @examplePrompt How big is this sofa?
32
+ * @examplePrompt What are the dimensions of the selected furniture?
33
+ * @examplePrompt Measure the length, width and height of this table
34
+ * @examplePrompt Get the size of the chair I just placed
35
+ *
36
+ * # Example
37
+ * ```ts
38
+ * const [item] = await snaptrude.design.query.listFurniture({ isSelected: true })
39
+ * const dims = await snaptrude.design.furniture.getDimensions(item)
40
+ * if (dims) console.log(dims.length, dims.width, dims.height)
41
+ * ```
42
+ */
43
+ abstract getDimensions(item: ComponentHandle): PluginApiReturn<PluginFurnitureDimensions | null>;
44
+ /**
45
+ * Resize a PLACED furniture item along one or more axes — `length`, `width`
46
+ * and/or `height` (engine units). Omitted axes are left unchanged. Each supplied
47
+ * axis is an undoable command, mirroring editing the furniture properties panel.
48
+ *
49
+ * @param item The placed furniture to resize
50
+ * @param dimensions New `length` / `width` / `height` (each optional, engine units)
51
+ * @returns The affected furniture
52
+ *
53
+ * @examplePrompt Make this table 1.8m long
54
+ * @examplePrompt Resize the selected sofa to 2000 wide
55
+ * @examplePrompt Set this furniture to 800mm tall
56
+ * @examplePrompt Change the desk to 1500 long and 700 deep
57
+ *
58
+ * # Example
59
+ * ```ts
60
+ * const [item] = await snaptrude.design.query.listFurniture({ isSelected: true })
61
+ * const { affected } = await snaptrude.design.furniture.setDimensions(item, {
62
+ * length: 1800,
63
+ * height: 750
64
+ * })
65
+ * ```
66
+ */
67
+ abstract setDimensions(item: ComponentHandle, dimensions: PluginFurnitureDimensionUpdates): PluginApiReturn<PluginDesignChangeResult>;
68
+ /**
69
+ * List the categories (Living, Bedroom, Kitchen, …) that organize the
70
+ * furniture catalog — the picker taxonomy, merged from built-in categories,
71
+ * team types, and backend user types. Pass a value to
72
+ * {@linkcode PluginDesignFurnitureApi.listCatalog}'s `category` filter.
73
+ * @returns The category names (`[]` when empty)
74
+ *
75
+ * @examplePrompt What furniture categories are available?
76
+ * @examplePrompt List the furniture categories
77
+ * @examplePrompt Show me the furniture groups like living and bedroom
78
+ * @examplePrompt Which furniture categories can I filter by?
79
+ *
80
+ * # Example
81
+ * ```ts
82
+ * const categories = await snaptrude.design.furniture.listCategories()
83
+ * const [first] = categories
84
+ * const items = await snaptrude.design.furniture.listCatalog(undefined, first)
85
+ * console.log(first, "→", items.length, "items")
86
+ * ```
87
+ *
88
+ * @deprecated Use `design.furniture.listCatalogGroups` — the same name
89
+ * `design.doors` and `design.windows` use. Still supported.
90
+ */
91
+ abstract listCategories(): PluginApiReturn<string[]>;
92
+ /**
93
+ * List the furniture catalog's groups. Matches
94
+ * {@linkcode PluginDesignDoorsApi.listCatalogGroups} and
95
+ * {@linkcode PluginDesignWindowsApi.listCatalogGroups}, so all three catalog
96
+ * surfaces are named alike.
97
+ *
98
+ * `source` is `"default"` for the built-in picker groups and `"team"` for the
99
+ * sub-types of THIS project's team library — exactly the split
100
+ * {@linkcode PluginDesignFurnitureApi.listCatalog}'s `source` filter uses, so
101
+ * every `"team"` group is guaranteed to match at least one team item here.
102
+ * For furniture the group token and its label are the same string (the
103
+ * category), so `dbType === label`; `design.doors`/`design.windows` have a
104
+ * distinct engine `dbType`.
105
+ *
106
+ * @returns The catalog groups as {@linkcode PluginObjectCatalogGroup}`[]`
107
+ * (`[]` when empty). Pass a group's `dbType` (=== `label`) to
108
+ * {@linkcode PluginDesignFurnitureApi.listCatalog}'s `category` filter to
109
+ * list its items.
110
+ *
111
+ * @examplePrompt What furniture groups are available?
112
+ * @examplePrompt List the furniture categories in this project
113
+ *
114
+ * # Example
115
+ * ```ts
116
+ * const groups = await snaptrude.design.furniture.listCatalogGroups()
117
+ * for (const g of groups) console.log(g.dbType, g.label, g.source)
118
+ * ```
119
+ */
120
+ abstract listCatalogGroups(): PluginApiReturn<PluginObjectCatalogGroup[]>;
121
+ /**
122
+ * List the placeable furniture catalog (team + general libraries),
123
+ * optionally filtered by library `source` and/or `category`.
17
124
  * @param source Restrict to one library (optional)
125
+ * @param category Restrict to one category (optional; see {@linkcode PluginDesignFurnitureApi.listCategories})
18
126
  * @returns The catalog as {@linkcode PluginFurnitureCatalogItem}`[]` (`[]` when empty)
19
127
  *
20
128
  * @examplePrompt What furniture can I place in this project?
21
129
  * @examplePrompt Show me all the furniture available in the library
22
130
  * @examplePrompt List the chairs and tables I can add to the model
23
131
  * @examplePrompt Which furniture items are in my team's library?
24
- * @examplePrompt Browse the furniture catalog
132
+ * @examplePrompt Show me the bedroom furniture I can place
25
133
  *
26
134
  * # Example
27
135
  * ```ts
28
- * const teamItems = await snaptrude.design.furniture.listCatalog("team")
29
- * for (const item of teamItems) console.log(item.id, item.name, item.cost)
136
+ * const bedroom = await snaptrude.design.furniture.listCatalog("team", "bedroom")
137
+ * for (const item of bedroom) console.log(item.id, item.name, item.thumbnailUrl)
30
138
  * ```
31
139
  */
32
- abstract listCatalog(source?: "team" | "general"): PluginApiReturn<PluginFurnitureCatalogItem[]>;
140
+ abstract listCatalog(source?: "team" | "general", category?: string): PluginApiReturn<PluginFurnitureCatalogItem[]>;
33
141
  /**
34
142
  * Get a single catalog item by its library id.
35
143
  * @param id The catalog library id
@@ -76,6 +184,8 @@ export declare abstract class PluginDesignFurnitureApi {
76
184
  * | `name` | `string` | Display name |
77
185
  * | `source` | `'team' \| 'general'` | Which library it came from |
78
186
  * | `subType` | `string` | Sub-type (optional) |
187
+ * | `category` | `string` | Category the item belongs to (optional) |
188
+ * | `thumbnailUrl` | `string` | Preview thumbnail URL (optional; never the mesh URL) |
79
189
  * | `cost` | `number` | Cost (optional; team items) |
80
190
  * | `familyName` | `string` | Family name (optional) |
81
191
  */
@@ -87,6 +197,8 @@ export declare const PluginFurnitureCatalogItem: z.ZodObject<{
87
197
  general: "general";
88
198
  }>;
89
199
  subType: z.ZodOptional<z.ZodString>;
200
+ category: z.ZodOptional<z.ZodString>;
201
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
90
202
  cost: z.ZodOptional<z.ZodNumber>;
91
203
  familyName: z.ZodOptional<z.ZodString>;
92
204
  }, z.core.$strip>;
@@ -97,12 +209,14 @@ export type PluginFurnitureCatalogItem = z.infer<typeof PluginFurnitureCatalogIt
97
209
  * | Property | Type | Description |
98
210
  * |---|---|---|
99
211
  * | `source` | `'team' \| 'general'` | Restrict to one library (optional) |
212
+ * | `category` | `string` | Restrict to one category (optional) |
100
213
  */
101
214
  export declare const PluginDesignFurnitureListCatalogArgs: z.ZodObject<{
102
215
  source: z.ZodOptional<z.ZodEnum<{
103
216
  team: "team";
104
217
  general: "general";
105
218
  }>>;
219
+ category: z.ZodOptional<z.ZodString>;
106
220
  }, z.core.$strip>;
107
221
  export type PluginDesignFurnitureListCatalogArgs = z.infer<typeof PluginDesignFurnitureListCatalogArgs>;
108
222
  /**
@@ -120,4 +234,63 @@ export declare const PluginDesignFurnitureExistsArgs: z.ZodObject<{
120
234
  id: z.ZodString;
121
235
  }, z.core.$strip>;
122
236
  export type PluginDesignFurnitureExistsArgs = z.infer<typeof PluginDesignFurnitureExistsArgs>;
237
+ /**
238
+ * A placed furniture item's dimensions (engine units).
239
+ *
240
+ * | Property | Type | Description |
241
+ * |---|---|---|
242
+ * | `length` | `number` | Along the object (panel "Length") |
243
+ * | `width` | `number` | Across the object (panel "Width") |
244
+ * | `height` | `number` | Vertical (panel "Height") |
245
+ */
246
+ export declare const PluginFurnitureDimensions: z.ZodObject<{
247
+ length: z.ZodNumber;
248
+ width: z.ZodNumber;
249
+ height: z.ZodNumber;
250
+ }, z.core.$strip>;
251
+ export type PluginFurnitureDimensions = z.infer<typeof PluginFurnitureDimensions>;
252
+ /**
253
+ * Arguments for {@linkcode PluginDesignFurnitureApi.getDimensions}.
254
+ *
255
+ * | Property | Type | Description |
256
+ * |---|---|---|
257
+ * | `item` | {@linkcode ComponentHandle} | The placed furniture to query |
258
+ */
259
+ export declare const PluginDesignFurnitureItemArgs: z.ZodObject<{
260
+ item: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
261
+ }, z.core.$strip>;
262
+ export type PluginDesignFurnitureItemArgs = z.infer<typeof PluginDesignFurnitureItemArgs>;
263
+ /**
264
+ * A partial dimension patch — each axis is optional; omitted axes are unchanged.
265
+ * Every supplied axis must be a positive engine-unit length.
266
+ *
267
+ * | Property | Type | Description |
268
+ * |---|---|---|
269
+ * | `length` | `number`? | New length along the object (engine units, > 0) |
270
+ * | `width` | `number`? | New width across the object (engine units, > 0) |
271
+ * | `height` | `number`? | New height (engine units, > 0) |
272
+ */
273
+ export declare const PluginFurnitureDimensionUpdates: z.ZodObject<{
274
+ length: z.ZodOptional<z.ZodNumber>;
275
+ width: z.ZodOptional<z.ZodNumber>;
276
+ height: z.ZodOptional<z.ZodNumber>;
277
+ }, z.core.$strip>;
278
+ export type PluginFurnitureDimensionUpdates = z.infer<typeof PluginFurnitureDimensionUpdates>;
279
+ /**
280
+ * Arguments for {@linkcode PluginDesignFurnitureApi.setDimensions}.
281
+ *
282
+ * | Property | Type | Description |
283
+ * |---|---|---|
284
+ * | `item` | {@linkcode ComponentHandle} | The placed furniture to resize |
285
+ * | `dimensions` | {@linkcode PluginFurnitureDimensionUpdates} | The axes to change (each optional) |
286
+ */
287
+ export declare const PluginDesignFurnitureSetDimensionsArgs: z.ZodObject<{
288
+ item: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
289
+ dimensions: z.ZodObject<{
290
+ length: z.ZodOptional<z.ZodNumber>;
291
+ width: z.ZodOptional<z.ZodNumber>;
292
+ height: z.ZodOptional<z.ZodNumber>;
293
+ }, z.core.$strip>;
294
+ }, z.core.$strip>;
295
+ export type PluginDesignFurnitureSetDimensionsArgs = z.infer<typeof PluginDesignFurnitureSetDimensionsArgs>;
123
296
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/furniture/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;;;;;;;;GASG;AACH,8BAAsB,wBAAwB;;IAG5C;;;;;;;;;;;;;;;;OAgBG;aACa,WAAW,CACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAC1B,eAAe,CAAC,0BAA0B,EAAE,CAAC;IAEhD;;;;;;;;;;;;;;;;OAgBG;aACa,cAAc,CAC5B,EAAE,EAAE,MAAM,GACT,eAAe,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAErD;;;;;;;;;;;;;;;;OAgBG;aACa,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;CAC7D;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;iBAOrC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC;;;;;iBAE/C,CAAA;AACF,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CACxD,OAAO,oCAAoC,CAC5C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uCAAuC;;iBAElD,CAAA;AACF,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAC3D,OAAO,uCAAuC,CAC/C,CAAA;AAED,eAAO,MAAM,+BAA+B;;iBAA0C,CAAA;AACtF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/furniture/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;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAEnD;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,wBAAwB;;IAG5C;;;;;;;;;;;;;;;;;;;OAmBG;aACa,aAAa,CAC3B,IAAI,EAAE,eAAe,GACpB,eAAe,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAEpD;;;;;;;;;;;;;;;;;;;;;;OAsBG;aACa,aAAa,CAC3B,IAAI,EAAE,eAAe,EACrB,UAAU,EAAE,+BAA+B,GAC1C,eAAe,CAAC,wBAAwB,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;;;;OAsBG;aACa,cAAc,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;IAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;aACa,iBAAiB,IAAI,eAAe,CAAC,wBAAwB,EAAE,CAAC;IAEhF;;;;;;;;;;;;;;;;;;OAkBG;aACa,WAAW,CACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe,CAAC,0BAA0B,EAAE,CAAC;IAEhD;;;;;;;;;;;;;;;;OAgBG;aACa,cAAc,CAC5B,EAAE,EAAE,MAAM,GACT,eAAe,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAErD;;;;;;;;;;;;;;;;OAgBG;aACa,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;CAC7D;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;iBASrC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC;;;;;;iBAG/C,CAAA;AACF,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CACxD,OAAO,oCAAoC,CAC5C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uCAAuC;;iBAElD,CAAA;AACF,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAC3D,OAAO,uCAAuC,CAC/C,CAAA;AAED,eAAO,MAAM,+BAA+B;;iBAA0C,CAAA;AACtF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAM7F;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;iBAExC,CAAA;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAA;AACF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F;;;;;;;GAOG;AACH,eAAO,MAAM,sCAAsC;;;;;;;iBAGjD,CAAA;AACF,MAAM,MAAM,sCAAsC,GAAG,CAAC,CAAC,KAAK,CAC1D,OAAO,sCAAsC,CAC9C,CAAA"}
@@ -13,6 +13,9 @@ import { PluginDesignBooleanApi } from "./boolean";
13
13
  import { PluginDesignTransformApi } from "./transform";
14
14
  import { PluginDesignEditApi } from "./edit";
15
15
  import { PluginDesignUpdateApi } from "./update";
16
+ import { PluginDesignVisibilityApi } from "./visibility";
17
+ import { PluginDesignTypesApi } from "./types";
18
+ import { PluginDesignFamilyApi } from "./family";
16
19
  import { PluginDesignChangeResult } from "./lock";
17
20
  /**
18
21
  * `snaptrude.design.*` — author, query & edit BIM geometry.
@@ -26,7 +29,11 @@ import { PluginDesignChangeResult } from "./lock";
26
29
  * - {@linkcode PluginDesignApi.boolean} — CSG boolean ops (union / subtract / intersect)
27
30
  * - {@linkcode PluginDesignApi.erase} — plan-level adjacency-edge erase (NOT hard delete)
28
31
  * - {@linkcode PluginDesignApi.delete} — hard entity removal
32
+ * - {@linkcode PluginDesignApi.visibility} — hide / isolate / reveal entities
33
+ * - {@linkcode PluginDesignApi.types} — read-only building type / assembly reference
34
+ * - {@linkcode PluginDesignApi.family} — author parametric families from a JSON spec
29
35
  * - {@linkcode PluginDesignApi.lock} / {@linkcode PluginDesignApi.unlock} / {@linkcode PluginDesignApi.isLocked} / {@linkcode PluginDesignApi.listLocked} — lock state (top-level design verbs, §2A.1)
36
+ * - {@linkcode PluginDesignApi.lockArea} / {@linkcode PluginDesignApi.unlockArea} / {@linkcode PluginDesignApi.isAreaLocked} / {@linkcode PluginDesignApi.listAreaLocked} — footprint-area lock for Room/Department spaces
30
37
  *
31
38
  * Transform and edit operation namespaces land here in later waves.
32
39
  */
@@ -57,6 +64,12 @@ export declare abstract class PluginDesignApi {
57
64
  abstract edit: PluginDesignEditApi;
58
65
  /** Update existing entities — properties + geometry. See {@linkcode PluginDesignUpdateApi}. */
59
66
  abstract update: PluginDesignUpdateApi;
67
+ /** Hide / isolate / reveal entities. See {@linkcode PluginDesignVisibilityApi}. */
68
+ abstract visibility: PluginDesignVisibilityApi;
69
+ /** Read-only building type / assembly reference. See {@linkcode PluginDesignTypesApi}. */
70
+ abstract types: PluginDesignTypesApi;
71
+ /** Author parametric families from a JSON spec. See {@linkcode PluginDesignFamilyApi}. */
72
+ abstract family: PluginDesignFamilyApi;
60
73
  /**
61
74
  * Lock entities so they cannot be edited. Undoable. Cascades to void/door/window
62
75
  * children, stacked-wall companions, and terrain neighborhood; skips
@@ -133,6 +146,88 @@ export declare abstract class PluginDesignApi {
133
146
  * ```
134
147
  */
135
148
  abstract listLocked(): PluginApiReturn<ComponentHandle[]>;
149
+ /**
150
+ * Lock the **footprint area** of one or more Room / Department mass spaces —
151
+ * geometry edits that would change the bottom-face area are then refused or
152
+ * auto-resized to preserve it. Distinct from {@linkcode PluginDesignApi.lock}
153
+ * (which freezes the whole object): this locks only the area. Cascades to the
154
+ * space's instances and its source mass. Undoable.
155
+ *
156
+ * Only Room / Department masses are area-lockable; any other handle throws.
157
+ * Requires the `area_lock` feature to be enabled — when it is off this throws.
158
+ *
159
+ * @param spaces Room / Department mass spaces to area-lock
160
+ * @returns The affected spaces (post-cascade, echoing the input handles)
161
+ *
162
+ * @examplePrompt Lock the floor area of the selected rooms
163
+ * @examplePrompt Freeze the footprint area of this department so its size can't drift
164
+ * @examplePrompt Area-lock every room on this storey
165
+ * @examplePrompt Pin the area of this space while I edit its walls
166
+ *
167
+ * # Example
168
+ * ```ts
169
+ * const rooms = await snaptrude.design.selection.get()
170
+ * const { affected } = await snaptrude.design.lockArea(rooms)
171
+ * console.log("area-locked", affected.length, "spaces")
172
+ * ```
173
+ */
174
+ abstract lockArea(spaces: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>;
175
+ /**
176
+ * Unlock the footprint area of previously area-locked spaces so their area can
177
+ * change again. Paired with {@linkcode PluginDesignApi.lockArea}; cascades to
178
+ * instances + source; undoable. Requires the `area_lock` feature (throws if off).
179
+ *
180
+ * @param spaces Room / Department mass spaces to area-unlock
181
+ * @returns The affected spaces (post-cascade)
182
+ *
183
+ * @examplePrompt Unlock the area of the selected rooms
184
+ * @examplePrompt Remove the footprint-area lock from this department
185
+ * @examplePrompt Let me resize this space again by unlocking its area
186
+ * @examplePrompt Area-unlock everything I locked earlier
187
+ *
188
+ * # Example
189
+ * ```ts
190
+ * const locked = await snaptrude.design.listAreaLocked()
191
+ * const { affected } = await snaptrude.design.unlockArea(locked)
192
+ * ```
193
+ */
194
+ abstract unlockArea(spaces: ComponentHandle[]): PluginApiReturn<PluginDesignChangeResult>;
195
+ /**
196
+ * Test whether a space's footprint area is locked. A read — never throws;
197
+ * returns `false` for non-space handles and when the `area_lock` feature is off.
198
+ *
199
+ * @param space The space to test
200
+ * @returns `true` if the space's area is locked, otherwise `false`
201
+ *
202
+ * @examplePrompt Is the area of this room locked?
203
+ * @examplePrompt Check whether this department's footprint is pinned
204
+ * @examplePrompt Tell me if the selected space has its area locked
205
+ *
206
+ * # Example
207
+ * ```ts
208
+ * const [room] = await snaptrude.design.selection.get()
209
+ * const locked = await snaptrude.design.isAreaLocked(room)
210
+ * console.log(locked ? "area is locked" : "area is free")
211
+ * ```
212
+ */
213
+ abstract isAreaLocked(space: ComponentHandle): PluginApiReturn<boolean>;
214
+ /**
215
+ * List the spaces whose footprint area is locked. A read — never throws; returns
216
+ * `[]` when the `area_lock` feature is off.
217
+ *
218
+ * @returns The area-locked spaces as {@linkcode ComponentHandle}`[]`
219
+ *
220
+ * @examplePrompt Which spaces have their area locked?
221
+ * @examplePrompt List every room with a locked footprint
222
+ * @examplePrompt Show me all the area-locked departments
223
+ *
224
+ * # Example
225
+ * ```ts
226
+ * const locked = await snaptrude.design.listAreaLocked()
227
+ * console.log(locked.length, "area-locked spaces")
228
+ * ```
229
+ */
230
+ abstract listAreaLocked(): PluginApiReturn<ComponentHandle[]>;
136
231
  constructor();
137
232
  }
138
233
  export * from "./create";
@@ -150,4 +245,7 @@ export * from "./boolean";
150
245
  export * from "./transform";
151
246
  export * from "./edit";
152
247
  export * from "./update";
248
+ export * from "./visibility";
249
+ export * from "./types";
250
+ export * from "./family";
153
251
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/design/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/design/index.ts"],"names":[],"mappings":"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"}
@@ -38,4 +38,30 @@ export declare const PluginDesignIsLockedArgs: z.ZodObject<{
38
38
  includeInherited: z.ZodOptional<z.ZodBoolean>;
39
39
  }, z.core.$strip>;
40
40
  export type PluginDesignIsLockedArgs = z.infer<typeof PluginDesignIsLockedArgs>;
41
+ /**
42
+ * Arguments for {@linkcode PluginDesignApi.lockArea} / {@linkcode PluginDesignApi.unlockArea}.
43
+ *
44
+ * | Property | Type | Description |
45
+ * |---|---|---|
46
+ * | `spaces` | {@linkcode ComponentHandle}`[]` | Room / Department mass spaces to area-lock / unlock |
47
+ */
48
+ export declare const PluginDesignLockAreaArgs: z.ZodObject<{
49
+ spaces: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
50
+ }, z.core.$strip>;
51
+ export type PluginDesignLockAreaArgs = z.infer<typeof PluginDesignLockAreaArgs>;
52
+ export declare const PluginDesignUnlockAreaArgs: z.ZodObject<{
53
+ spaces: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
54
+ }, z.core.$strip>;
55
+ export type PluginDesignUnlockAreaArgs = z.infer<typeof PluginDesignUnlockAreaArgs>;
56
+ /**
57
+ * Arguments for {@linkcode PluginDesignApi.isAreaLocked}.
58
+ *
59
+ * | Property | Type | Description |
60
+ * |---|---|---|
61
+ * | `space` | {@linkcode ComponentHandle} | The space to test |
62
+ */
63
+ export declare const PluginDesignIsAreaLockedArgs: z.ZodObject<{
64
+ space: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
65
+ }, z.core.$strip>;
66
+ export type PluginDesignIsAreaLockedArgs = z.infer<typeof PluginDesignIsAreaLockedArgs>;
41
67
  //# sourceMappingURL=lock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/api/design/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;iBAEnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,eAAO,MAAM,sBAAsB;;iBAAuB,CAAA;AAC1D,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;iBAGnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/api/design/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;iBAEnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,eAAO,MAAM,sBAAsB;;iBAAuB,CAAA;AAC1D,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;iBAGnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;iBAEnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E,eAAO,MAAM,0BAA0B;;iBAA2B,CAAA;AAClE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;;iBAEvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA"}